def zhuan(str_num,key):
sumkey=0
lenn=len(str_num)
for i in range(lenn):
#print(i)
if str_num[i]>='0' and str_num[i]<='9':
vua=ord(str_num[i])-ord('0')
else:
vua=ord(str_num[i])-ord('a')+10
#print('%d %d %d'%(sumkey,vua,lenn-i))
sumkey+=vua*(key**(lenn-1-i))
return sumkey
inp=input()
lis=list(inp.split(' '))
vua=int(lis[3])
key_off=1
if lis[2]=='1':
ex=zhuan(lis[0],vua)
else:
ex=zhuan(lis[1],vua)
key_off=0
for i in range(2,101):
if ex==zhuan(lis[key_off],i):
break
if i>=100:
print('Impossible')
else:
print('%d'%i)