from collections import defaultdict
import math
import re
f, s = input().split()
def dec_to_base(num,base): base_num = ""
while num>0:
dig = int(num%base)
if dig<10:
base_num += str(dig)
else:
base_num += chr(ord('A')+dig-10) num //= base
base_num = base_num[::-1] return base_num
max_digit = 0
for digit in f:
max_digit = max(max_digit, int(digit))
for digit in s:
max_digit = max(max_digit, int(digit))
max_digit += 1
value = int(f, max_digit) + int(s, max_digit)
value = dec_to_base(value, max_digit)
print(len(value))
#include <iostream>
#include <algorithm>
int to10(int, int);
int maxDigit(int);
int main(){
int a, b;
std::cin >> a >> b;
int base = std::max(maxDigit(a), maxDigit(b)) + 1;
int sum = to10(a, base) + to10(b, base);
int ans = 0;
while (sum / base != 0){
ans++;
sum /= base;
}
ans++;
std::cout << ans;
}
int to10(int num, int base){
int ret = 0;
int degree = 1;
while (num != 0){
ret += num % 10 * degree;
degree *= base;
num = num / 10;
}
return ret;
}
int maxDigit(int num){
int max = -1;
while (num != 0){
if (num % 10 > max){
max = num % 10;
}
num = num / 10;
}
return max;
}/*1688364595.3779361*/
721B - Passwords | 1263D - Secret Passwords |
1371B - Magical Calendar | 1726E - Almost Perfect |
1360C - Similar Pairs | 900A - Find Extra One |
1093D - Beautiful Graph | 748A - Santa Claus and a Place in a Class |
1511B - GCD Length | 676B - Pyramid of Glasses |
597A - Divisibility | 1632A - ABC |
1619D - New Year's Problem | 242B - Big Segment |
938A - Word Correction | 159C - String Manipulation 10 |
258A - Little Elephant and Bits | 1536C - Diluc and Kaeya |
1428C - ABBB | 1557A - Ezzat and Two Subsequences |
255A - Greg's Workout | 1059A - Cashier |
1389C - Good String | 1561A - Simply Strange Sort |
1337B - Kana and Dragon Quest game | 137C - History |
1443C - The Delivery Dilemma | 6C - Alice Bob and Chocolate |
1077C - Good Array | 285B - Find Marble |