#include <bits/stdc++.h>
using namespace std;
const int MAXN = -1, MOD = 1e9 + 7;
long long expmod(long long b, long long e, long long m = MOD) {
  if (!e) return 1;
  return (e % 2 ? b : 1) * expmod(b * b % m, e / 2, m) % m;
}
int n;
vector<int> ans, aux;
int main() {
  ans = {3,       5,       7,       13,      17,      19,       31,      61,
         89,      107,     127,     521,     607,     1279,     2203,    2281,
         3217,    4253,    4423,    9689,    9941,    11213,    19937,   21701,
         23209,   44497,   86243,   110503,  132049,  216091,   756839,  859433,
         1257787, 1398269, 2976221, 3021377, 6972593, 13466917, 20996011};
  while (cin >> n) {
    if (n == 1) {
      printf("1\n");
      continue;
    }
    printf("%lld\n", expmod(4, ans[n - 2] / 2) - 1);
  }
  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 MAXN = -1, MOD = 1e9 + 7;
long long expmod(long long b, long long e, long long m = MOD) {
  if (!e) return 1;
  return (e % 2 ? b : 1) * expmod(b * b % m, e / 2, m) % m;
}
int n;
vector<int> ans, aux;
int main() {
  ans = {3,       5,       7,       13,      17,      19,       31,      61,
         89,      107,     127,     521,     607,     1279,     2203,    2281,
         3217,    4253,    4423,    9689,    9941,    11213,    19937,   21701,
         23209,   44497,   86243,   110503,  132049,  216091,   756839,  859433,
         1257787, 1398269, 2976221, 3021377, 6972593, 13466917, 20996011};
  while (cin >> n) {
    if (n == 1) {
      printf("1\n");
      continue;
    }
    printf("%lld\n", expmod(4, ans[n - 2] / 2) - 1);
  }
  return 0;
}

```