시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB70933527848.601%

문제

프로젝트 하느라 바쁜 득수는 밥 먹을 시간이 부족하다. 그래서 주로 찾는 식당 네 개 중 하나에서 하루에 한 번 밥을 먹는다. 귀찮으면 굶을 때도 있다.

늘 새로운 느낌을 받고 싶었던 득수는 다음과 같은 규칙으로 다음날 갈 식당을 정한다.

  • 첫날에는 굶거나, 임의로 원하는 식당 하나를 골라서 간다.
  • 어제 굶지 않았다면, 오늘은 식당을 가지 않아도 된다.
  • 어제 식당을 가지 않았다면, 오늘은 식당을 가서 밥을 먹어야 한다.
  • 오늘 간 식당은 다음날 가지 않는다.
  • 오늘 간 식당과 이웃한 식당은 다음날 가지 않는다.

만약 2번 식당을 오늘 갔다면, 다음날 $1$, $2$, $3$번 식당은 가지 않는다. 따라서 새로운 느낌을 받으려면 $4$번 식당을 가거나 굶어야 한다.

득수가 $N$일 치 식단표를 만들려고 한다. 위 규칙을 따라 식단표를 만들 때 가능한 경우의 수를 구하는 프로그램을 작성하시오.

입력

첫 번째 줄에는 득수가 만들어야 하는 점심 식단의 총 날짜 $N$이 입력으로 들어온다. $(1 \le N \le 200\,000)$

출력

$N$일 치 식단표를 만들 때 가능한 경우의 수를 $1\,000\,000\,007(=10^9+7)$로 나눈 나머지를 출력한다.

예제 입력 1

1

예제 출력 1

5

첫날 식당을 가는 경우 네 가지와 굶는 경우 총 다섯 가지 경우의 수가 존재한다.

예제 입력 2

2

예제 출력 2

14

첫날은 굶고 다음 날 식당을 가는 경우 네 가지, 첫날 식당을 가고 다음 날 굶는 경우 네 가지, 이틀 연속으로 식당을 가는 경우 여섯 가지를 더하여 총 열네 가지이다.