사탕

N개의 사탕으로 만든 모든 부분집합에 대해 원소 개수가 K일 때 2^K를 더하되 공집합은 0으로 두고, 그 합을 1,000,000,007로 나눈 나머지를 구한다.

보통4조합론수학동적 계획법정수론아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

영희는 서로 다른 맛의 사탕 NN개를 준비해 상자에 담고 포장해서 철수에게 주려고 했다. 사탕에는 맛에 따라 1번부터 NN번까지 번호가 붙어 있다.

생일 날 철수가 받은 꾸러미는 이미 포장이 뜯겨 있었다. 철수는 원래 사탕이 NN개였다는 말을 영희에게 들었으므로 사탕 몇 개가 사라졌을지도 모른다고 생각한다. 하나도 사라지지 않았을 수도 있고 전부 사라졌을 수도 있다. 즉 철수가 실제로 받은 사탕은 1번부터 NN번까지 가운데 어떤 부분집합이든 될 수 있다.

철수는 사탕 KK개(1KN1 \le K \le N)를 받으면 만족도를 2K2^K만큼 느낀다. 예를 들어 1번, 3번, 4번 사탕 3개를 받았다면 만족도는 23=82^3 = 8이다. 사탕을 하나도 받지 못하면 만족도는 0이다.

철수가 받았을 수 있는 모든 경우, 즉 2N2^N가지 부분집합 각각의 만족도를 모두 더한 값을 구하라.

입력

첫째 줄에 서로 다른 사탕의 개수 NN이 주어진다. (2N1000002 \le N \le 100000)

출력

첫째 줄에 만족도의 총합을 1,000,000,007로 나눈 나머지를 출력한다.

힌트

N=2N = 2인 경우를 보자. 1번 사탕만 받으면 만족도는 2, 2번 사탕만 받으면 만족도는 2, 1번과 2번을 모두 받으면 만족도는 4, 아무것도 받지 못하면 만족도는 0이다. 따라서 총합은 2+2+4=82 + 2 + 4 = 8이다.