import Control.Applicative
import Data.Array.Unboxed
fib n = dp!n
where
r = (0,n)
dp
= listArray r
[dfs i
|i
<-range r
] :: UArray
Int Int dfs i
| i==0 = 0
| i==1 = 1
main = do
aW1wb3J0IENvbnRyb2wuQXBwbGljYXRpdmUKaW1wb3J0IERhdGEuQXJyYXkuVW5ib3hlZAoKZmliIG4gPSBkcCFuCiAgd2hlcmUKICAgIHIgPSAoMCxuKQogICAgZHAgPSBsaXN0QXJyYXkgciBbZGZzIGl8aTwtcmFuZ2Ugcl0gOjogVUFycmF5IEludCBJbnQKICAgIGRmcyBpCiAgICAgIHwgaT09MCA9IDAKICAgICAgfCBpPT0xID0gMQogICAgICB8IG90aGVyd2lzZSA9IChkcCEoaS0xKSkrKGRwIShpLTIpKQoKbWFpbiA9IGRvCiAgcHJpbnQgJCBmaWIgMTA=