import sequtils,strutils,strscans const m : int64 = 1_000_000_007 var N = stdin.readline.parseInt ans, c : int64 s,d,cs : string proc ctoi(c : char) : int = return ord(c) - ord('0') proc pows(i : int64, s : string) : int64 = if s == "0" or s == "": return 1 elif s == "1": return i mod m elif (s[^1].ctoi and 1) == 1: return (i * pows(i, s[0.. 11: var p = d[0..10].parseBiggestInt q = p mod t d = $q & d[11..d.high] ans = (ans * pows(fib((c + 2) mod 2_000_000_016) , d)) mod m #echo ans echo ans