만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

도미노

시간 제한10초메모리 제한1024 MB

요약
2 x n 직사각형에서 일부 칸을 칠해 남은 칸을 도미노로 덮는 방법이 정확히 m가지가 되는 가장 작은 n을 구합니다. 그런 n이 없으면 NIE를 출력합니다.
난이도

보통10점 중 7점

유형
수학, 동적 계획법, 정수론
정답자
아직 제출이 없습니다

문제

Bajtek은 2×n2 \times n 크기의 직사각형을 2×12 \times 1 도미노 조각으로 덮는 놀이를 한다. 너비가 nn인 직사각형은 1 × 1 칸 2n2n개로 이루어지며, Bajtek은 그중 일부 칸을 칠할 수 있다. 칠하지 않은 칸은 도미노 조각이 서로 겹치지 않게 모두 덮을 수 있어야 한다. 조각은 회전해도 된다. 또 그렇게 덮는 방법이 정확히 mm가지이기를 원한다. 마지막으로 이런 조건을 만족하는 가장 작은 직사각형을 찾고자 한다.

아래 그림은 너비가 n=6n = 6인 직사각형에서 칸 두 개를 칠한 모습이다. 칠하지 않은 나머지 10칸은 정확히 4가지 방법으로 덮을 수 있다. 그림에는 그중 두 방법을 나타냈다. 도미노 조각은 잘 보이도록 조금 작게 그렸다.

이 배치는 m=4m = 4에 대한 최적해가 아니다. n=5n = 5인 배치가 존재하기 때문이다.

입력

첫 번째이자 유일한 줄에 자연수 mm이 주어진다 (1≤m≤10181 \le m \le 10^{18}).

출력

첫 번째이자 유일한 줄에, 칸을 칠해서 정확히 mm가지 방법으로 덮을 수 있는 직사각형의 가장 작은 너비 nn을 출력한다. 그런 직사각형이 없으면 NIE만 출력한다.

예제2

  1. 예제 1

    입력
    4
    
    예상 출력
    5
    
  2. 예제 2

    입력
    101
    
    예상 출력
    NIE