#include <bits/stdc++.h>
using namespace std;
const int Max = 1 << 22;
const int a[] = {1,       2,       4,       6,        12,      16,      18,
                 30,      60,      88,      106,      126,     520,     606,
                 1278,    2202,    2280,    3216,     4252,    4422,    9688,
                 9940,    11212,   19936,   21700,    23208,   44496,   86242,
                 110502,  132048,  216090,  756838,   859432,  1257786, 1398268,
                 2976220, 3021376, 6972592, 13466916, 20996010};
const int Mod = 1000000007;
long long Pow(long long a, long long p) {
  if (p == 1) return a;
  long long lrt = Pow(a, p / 2);
  lrt = lrt * lrt % Mod;
  if (p & 1) lrt = lrt * a % Mod;
  return lrt;
}
int main() {
  int len = sizeof(a) / sizeof(int);
  int n;
  cin >> n;
  long long lrt = (Pow(2, a[n - 1]) + Mod - 1) % Mod;
  cout << lrt << endl;
  return 0;
}

### Prompt

In CPP, your task is to solve the following problem:

Consider the following equation: 

<image> where sign [a] represents the integer part of number a.

Let's find all integer z (z > 0), for which this equation is unsolvable in positive integers. The phrase "unsolvable in positive integers" means that there are no such positive integers x and y (x, y > 0), for which the given above equation holds.

Let's write out all such z in the increasing order: z1, z2, z3, and so on (zi < zi + 1). Your task is: given the number n, find the number zn.

Input

The first line contains a single integer n (1 ≤ n ≤ 40).

Output

Print a single integer — the number zn modulo 1000000007 (109 + 7). It is guaranteed that the answer exists.

Examples

Input

1


Output

1

Input

2


Output

3

Input

3


Output

15

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const int Max = 1 << 22;
const int a[] = {1,       2,       4,       6,        12,      16,      18,
                 30,      60,      88,      106,      126,     520,     606,
                 1278,    2202,    2280,    3216,     4252,    4422,    9688,
                 9940,    11212,   19936,   21700,    23208,   44496,   86242,
                 110502,  132048,  216090,  756838,   859432,  1257786, 1398268,
                 2976220, 3021376, 6972592, 13466916, 20996010};
const int Mod = 1000000007;
long long Pow(long long a, long long p) {
  if (p == 1) return a;
  long long lrt = Pow(a, p / 2);
  lrt = lrt * lrt % Mod;
  if (p & 1) lrt = lrt * a % Mod;
  return lrt;
}
int main() {
  int len = sizeof(a) / sizeof(int);
  int n;
  cin >> n;
  long long lrt = (Pow(2, a[n - 1]) + Mod - 1) % Mod;
  cout << lrt << endl;
  return 0;
}

```