만드는 중입니다

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

프랙탈

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

요약
N과 a가 주어질 때, 한 변의 길이가 1이 될 때까지 만든 N각형 프랙탈의 둘레를 1000000007로 나눈 나머지로 구합니다.
난이도

보통10점 중 4점

유형
수학, 기하
정답자
아직 제출이 없습니다

문제

프랙탈은 자기 자신을 반복적으로 포함하는 도형을 뜻한다. 대표적으로 시에르핀스키 삼각형, 드래곤 커브가 있다.

ska1xo2dnd3는 프랙탈을 아주 좋아해서 자신만의 프랙탈 패턴을 만들었다. ska1xo2dnd3이 만든 프랙탈 패턴은 다음과 같다.

  1. 한 변의 길이가 NaN^a인 정NN각형에서 시작한다.
  2. 각 변의 중앙에 그 변의 1N\frac{1}{N} 길이를 한 변으로 하는 정NN각형을 만든다.
  3. 새로 만들어진 정NN각형에도 2를 반복한다.

다음 그림은 각각 정사각형과 정오각형에서의 경우를 나타낸 예시다.

midori는 이 프랙탈의 둘레를 구하고 싶다. 하지만 midori는 유리수를 싫어하기 때문에, 패턴을 그리다가 새로 만들어진 도형의 변의 길이가 1이 되면 거기서 멈추고 도형의 둘레를 계산하기로 했다.

midori의 계산을 도와줄 프로그램을 작성하자. 결괏값이 매우 커질 수 있으므로 1 000 000 007(109+7)1\,000\,000\,007(10^9+7)으로 나눈 나머지를 출력한다.

입력

첫째 줄에 정수 NN, aa가 공백으로 구분되어 주어진다. (3≤N≤109;1≤a≤109)(3 \le N \le 10^9; 1 \le a \le 10^9)

출력

문제의 정답을 출력한다.

예제1

  1. 예제 1

    입력
    4 3
    
    예상 출력
    552