Problem:
イクタ君は速いプログラムが大好きである。最近は、除算のプログラムを高速にしようとしている。しかしなかなか速くならないので、「常識的に考えて典型的」な入力に対してのみ高速にすればよいと考えた。イクタ君が解こうとしている問題は次のようなものである。

与えられた非負整数nに対し、10進法でp(n) − 1桁の正整数11...1をp(n)で割ったあまりを求めよ。ただしp(n)は22{ . . . 2}（2がn個）より大きい最小の素数を表すとする。p(0) = 2とする。

あなたの仕事は、イクタ君より速くプログラムを完成させることである。

Input

入力は以下の形式で与えられる。

n

問題の入力の非負整数nがあたえられる。

Constraints

入力中の各変数は以下の制約を満たす。

0 ≤ n < 1000

Output

問題の解を1行に出力せよ。

Sample Input 1

0

Output for the Sample Input 1

1

n=0のとき、p(n) = 2 なので、1 mod 2 = 1 が解となる。

Sample Input 2

1

Output for the Sample Input 2

2

n=1のとき、p(n) = 3 なので、11 mod 3 = 2が解となる。

Sample Input 3

2

Output for the Sample Input 3

1

Solution in Ruby (judge verdict: Accepted)

require 'prime'

def solve(p)
  (2...p-1).each_with_object([1, 10 % p]){ |i, arr| arr << (arr[1] * arr[-1]) % p }.reduce(:+) % p
end
n = gets.to_i
p solve(Prime.each.lazy.drop_while{ |p| p <= 2 * n }.take(1).to_a[0])