Fibonaccis’ vouchers

아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

The school organizes a fair to commemorate Fibonaccis. Johnny is responsible for a gift shop, in which you can pay only using special vouchers, whose face values are Fibonacci numbers. Johnny has difficulty with processing such strange values and has decided to accept only exact payments with exactly kk vouchers, not necessarily of different face values. Now he needs to set the prices -- there are nn different items at the gift shop and Johhny wants to put a different price on each of them. Sometimes there are many ways to pay one price, in such a case Johnny counts this price only once. He calculated all the prices and now he wants to verify his calculations. To make it quick, it is enough to name the last, nn-th price. Help Johnny -- write a program that, given nn and kk, computes the nn-th smallest price that can be paid using exactly kk vouchers.

입력

The first and only line of the input contains two integers kk and nn (1k100,1n10181\leq k \leq 100, 1 \leq n \leq 10^{18}), separated by a single space.

출력

You should write a single integer in the first and only line of the output -- the nn-th smallest number that can be paid with kk (not necessarily different) vouchers whose face values are Fibonacci numbers, assuming that this number is at most 101810^{18}, or "NIE" (Polish for "no"), if it is larger than 101810^{18}.

힌트

In Sample 1, using exactly 22 vouchers it is not possible to pay the prices 11 and 1212.

In Sample 2, the 100-th Fibonacci number is (much) greater than 101810^{18}.