def isRoot(num):
num=num**(1/2)
return True if num%1==0 else False
# 진법수, n진법
def convert_10(num,n):
# str_dict={"0":1,"1":1,"2":2,"3":3,"4":4,"5":5,"6":6,"7":7,"8":8,"9":9,
# "A":10,"B":11,"C":12,"D":13,"E":14,"F":15,"G":16,"H":17,"I":18,"J":19}
str_num=num[::-1]
result=0
for i in range(len(str_num)):
result+=int(str_num[i])*(n**i)
return result
# print(convert_10(15,11))
nums=input()
m=max(map(int,nums))
# print(m)
i=m
while True:
i+=1
result=convert_10(nums,i)
if isRoot(result):
print(i)
break
# for i in range(m+1,20):
# result=convert_10(nums,i)
# if isRoot(result):
# print(i)
# break
https://level.goorm.io/exam/43171/%EC%96%B4%EB%8A%90-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%9D%B4%EC%95%BC%EA%B8%B0/quiz/1