def p():
q,r,t,j = 1,180,60,2
while True:
u,y = 3*(3*j+1)*(3*j+2),(q*(27*j-12)+5*r)//(5*t)
yield y
q,r,t,j = 10*q*j*(2*j-1),10*u*(q*(5*j-2)+r-y*t),t*u,j+1
p=p()
LIM = 5000
d=L = [p.next()]
#print 0,
print 3
n=1
while n<LIM:
x = p.next()
if d[-1]==x:
d.append(x)
if len(d)>len(L):
#print n,
print "".join(str(i)for i in d)
L.append(long("".join(str(i)for i in d)))
else:
d=[x]
n += 1
#print
#for i in L:print str(i),
#print
ZGVmIHAoKToKCXEscix0LGogPSAxLDE4MCw2MCwyCgl3aGlsZSBUcnVlOgoJCXUseSA9IDMqKDMqaisxKSooMypqKzIpLChxKigyNypqLTEyKSs1KnIpLy8oNSp0KQoJCXlpZWxkIHkKCQlxLHIsdCxqID0gMTAqcSpqKigyKmotMSksMTAqdSoocSooNSpqLTIpK3IteSp0KSx0KnUsaisxCnA9cCgpCgpMSU0gPSA1MDAwCgpkPUwgPSBbcC5uZXh0KCldCiNwcmludCAwLApwcmludCAzCgpuPTEKd2hpbGUgbjxMSU06Cgl4ID0gcC5uZXh0KCkKCWlmIGRbLTFdPT14OgoJCWQuYXBwZW5kKHgpCgkJaWYgbGVuKGQpPmxlbihMKToKCQkJI3ByaW50IG4sIAoJCQlwcmludCAiIi5qb2luKHN0cihpKWZvciBpIGluIGQpCgkJCUwuYXBwZW5kKGxvbmcoIiIuam9pbihzdHIoaSlmb3IgaSBpbiBkKSkpCgllbHNlOgoJCWQ9W3hdCgluICs9IDEKCiNwcmludAojZm9yIGkgaW4gTDpwcmludCBzdHIoaSksCiNwcmludA==