/* KSP 15-1-4
 * Soustavy
 *
 * Petr Baudis
 * Rocnik: 3
 * Skola: Ad Fontes
 */


/*
 * Vstup: A\nB\nC\n
 *
 * Vystup: N\n
 *
 * Algoritmus:
 *
 * Pri souctu libovolnych dvou cifer se cifra (o jedna) vyssiho radu vzdy bud
 * nezvysi vubec, nebo se zvysi o 1 - a to, pokud je vysledna cifra mensi nez
 * cifry, ktere jsme scitali: pro zaklad n je nejvyssi mozna cifra n-1, a
 * nejvyssi mozna hodnota souctu je tedy 2*(n-1); ovsem dolni cifra hodnoty
 * souctu je maximalne 2*(n-1)-n, tedy n-2 --- n-2 < n-1.
 *
 * Postupujeme tedy ciframi nejnizsiho radu k nejvyssimu - pokud je soucet
 * cifer v danem radu nizsi, nez zaklad soustavy, moc toho nezjistime a
 * postupujeme na dalsi cifru (pricemz si pamatujeme maximum ze vsech cifer;
 * pokud takto projdeme vsechny cifry, vratime jako zaklad maximum+1).
 *
 * Nyni je jiz vypocet trivialni - pro c jako funkci, krera nam vrati danou
 * cifru, a n jako zaklad soustavy plati tedy c(A) + c(B) = c(C) + n (pokud je
 * splnena predchozi podminka, kterou jsme jiz dokazali). Z toho tedy plyne:
 *
 * n = c(A) + c(B) - c(C).
 *
 * Pametova narocnost je O(N), musime si pamatovat cely vstup uzivatele. Casova
 * narocnost je trochu diskutabilni - zalezi na tom, jestli bereme kontrolu
 * vhodnosti dane cifry ke zpracovani za operaci hodnou zapocteni nebo ne.
 * Podle me se pocita pouze samotny ukon vypoctu, v tom pripade je ovsem casova
 * narocnost O(1).
 */


#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>


char tr[] = "0123456789abcdefghijklmnopqrstuvwxyz";

#define digit(c) (((char *) strchr(tr, tolower(c))) - tr)

void
zerofill(char *a)
{
  int len = strlen(a) - 1; /* disregard newline */
  memmove(a + 15 - len, a, len);
  memset(a, '0', 15 - len);
  a[15] = 0;
}

int
main() {
  /* Pro jednoduchost... */
  /* Predpokladame take, ze vstup je ve spravnem formatu a dava smysl. */
  char a[16], b[16], c[16];
  int pos, max = 0;

  fgets(a, 16, stdin);
  fgets(b, 16, stdin);
  fgets(c, 16, stdin);

  zerofill(a);
  zerofill(b);
  zerofill(c);

  for (pos = 14; pos >= 0; pos--) {
    int coef = digit(a[pos]) + digit(b[pos]) - digit(c[pos]);

    if (coef > 0) {
      printf("%d\n", coef);
      return 0;
    }
    if (max < digit(c[pos])) max = digit(c[pos]);
  }

  printf("%d\n", max + 1);

  return 0;
}
