#include <bits/stdc++.h>
using namespace std;
int go_to_hall(string maxx, string minn, int base) {
  string h = "";
  int a = 0;
  for (int i = minn.size() - 1, j = maxx.size() - 1; i >= 0; j--, i--) {
    int q1 = minn[i] - '0', q2 = maxx[j] - '0';
    int q3 = q1 + q2 + a;
    if (q3 >= base) {
      int a1 = q3 - base;
      string w;
      ostringstream convert4;
      convert4 << a1;
      w = convert4.str();
      h += w;
      a = 1;
    } else {
      string w;
      ostringstream convert5;
      convert5 << q3;
      w = convert5.str();
      h += w;
      a = 0;
    }
  }
  if (a == 1 && maxx.size() == minn.size()) {
    h += '1';
    return h.size();
  } else {
    int s = 0;
    for (int r = maxx.size() - minn.size() - 1; r >= 0; r--) {
      int e = s + (maxx[r] - '0');
      int x = maxx.size() - minn.size() - 1;
      if (r == x) {
        int y = e + a;
        if (y >= base) {
          int a1 = y - base;
          string w;
          ostringstream convert6;
          convert6 << a1;
          w = convert6.str();
          h += w;
          s = 1;
        } else {
          string w;
          ostringstream convert7;
          convert7 << y;
          w = convert7.str();
          h += w;
          s = 0;
        }
      } else {
        if (e >= base) {
          int a1 = e - base;
          string w;
          ostringstream convert8;
          convert8 << a1;
          w = convert8.str();
          h += w;
          s = 1;
        } else {
          string w;
          ostringstream convert9;
          convert9 << e;
          w = convert9.str();
          h += w;
          s = 0;
        }
      }
    }
    if (s == 1) {
      h += '1';
    }
    return h.size();
  }
}
int main() {
  int x, y, base = 0;
  cin >> x >> y;
  int k1 = x, k2 = y;
  string q1;
  ostringstream convert;
  convert << x;
  q1 = convert.str();
  string q2;
  ostringstream convert1;
  convert1 << y;
  q2 = convert1.str();
  for (int y = 0; y < q1.size(); y++) {
    int r = q1[y] - '0';
    base = max(r, base);
  }
  for (int y = 0; y < q2.size(); y++) {
    int r = q2[y] - '0';
    base = max(r, base);
  }
  base++;
  if (base == 10) {
    int k3 = k1 + k2;
    int i = 0;
    while (k3 != 0) {
      k3 = k3 / 10;
      i++;
    }
    cout << i << endl;
  } else {
    string maxx, minn;
    if (q1.size() >= q2.size()) {
      maxx = q1;
      minn = q2;
    } else {
      maxx = q2;
      minn = q1;
    }
    cout << go_to_hall(maxx, minn, base) << endl;
  }
  return 0;
}
