# prime fibonacci numbers
 
def isPrime(n, k=5): # miller-rabin
    from random import randint
    if n < 2: return False
    for p in [2,3,5,7,11,13,17,19,23,29]:
        if n % p == 0: return n == p
    s, d = 0, n-1
    while d % 2 == 0:
        s, d = s+1, d/2
    for i in range(k):
        x = pow(randint(2, n-1), d, n)
        if x == 1 or x == n-1: continue
        for r in range(1, s):
            x = (x * x) % n
            if x == 1: return False
            if x == n-1: break
        else: return False
    return True
 
a, b, f = 1, 1, 2
while f < 1000000000:
	if isPrime(f): print f
  	a, b, f = b, f, b+f
				IyBwcmltZSBmaWJvbmFjY2kgbnVtYmVycwoKZGVmIGlzUHJpbWUobiwgaz01KTogIyBtaWxsZXItcmFiaW4KICAgIGZyb20gcmFuZG9tIGltcG9ydCByYW5kaW50CiAgICBpZiBuIDwgMjogcmV0dXJuIEZhbHNlCiAgICBmb3IgcCBpbiBbMiwzLDUsNywxMSwxMywxNywxOSwyMywyOV06CiAgICAgICAgaWYgbiAlIHAgPT0gMDogcmV0dXJuIG4gPT0gcAogICAgcywgZCA9IDAsIG4tMQogICAgd2hpbGUgZCAlIDIgPT0gMDoKICAgICAgICBzLCBkID0gcysxLCBkLzIKICAgIGZvciBpIGluIHJhbmdlKGspOgogICAgICAgIHggPSBwb3cocmFuZGludCgyLCBuLTEpLCBkLCBuKQogICAgICAgIGlmIHggPT0gMSBvciB4ID09IG4tMTogY29udGludWUKICAgICAgICBmb3IgciBpbiByYW5nZSgxLCBzKToKICAgICAgICAgICAgeCA9ICh4ICogeCkgJSBuCiAgICAgICAgICAgIGlmIHggPT0gMTogcmV0dXJuIEZhbHNlCiAgICAgICAgICAgIGlmIHggPT0gbi0xOiBicmVhawogICAgICAgIGVsc2U6IHJldHVybiBGYWxzZQogICAgcmV0dXJuIFRydWUKCmEsIGIsIGYgPSAxLCAxLCAyCndoaWxlIGYgPCAxMDAwMDAwMDAwOgoJaWYgaXNQcmltZShmKTogcHJpbnQgZgogIAlhLCBiLCBmID0gYiwgZiwgYitm