Parovi


Submit solution


Points: 100 (partial)
Time limit: 1.0s
Python 4.0s
Memory limit: 64M
C++11 128M
Python 128M

Authors:
Problem types
Allowed languages
Ada, BrainF***, C, C#, C++, Dart, Go, Java, JS, Kotlin, Lua, Pascal, Prolog, Python, Swift, VB

George and Peter are playing a game. George’s turn is first and he chooses a non-empty set of pairs of numbers between 1 and N (inclusive) under the condition that the numbers that comprise a pair are mutually relatively prime. The numbers that comprise a pair must be different. For example, for N = 5, George could have chosen the following set of pairs: \{\{1, 2\}, \{3, 4\}, \{2, 5\}, \{3, 5\}\}.

Peter’s turn is second and his goal is to find a partition for George’s set of pairs. George’s set of pairs has a partition if an integer x from the set {2, 3, ..., N } exists such that, for each pair {a, b}, one of the following holds:

  • a, b < x
  • a, b \ge x

For example, a set of pairs \{\{1, 2\}, \{3, 4\}\} has a partition x = 3. If a partition exists, Peter will surely find it. George wins if Peter can’t find a partition for his set. Determine how many different sets of pairs exists that George can initially choose and be sure of his victory. Given the fact that the total number of sets can be very large, output the number modulo 1\, 000\, 000\, 000.

INPUT

The first line of input contains the integer N (1 \leq N \leq 20).

OUTPUT

The first and only line of output must contain the required number.

Samples

Input 1

2

Output 1

1

Input 2

3

Output 2

5

Input 3

4

Output 3

21

Clarification of the first example: The only set of pairs that meets the given requirements is {{1, 2}}

Clarification of the second example: An example of a set that meets the given requirements is {{1, 3}, {1, 2}}


Comments

There are no comments at the moment.