#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const ll Mod = (ll)1e9 + 7;
int magic[] = {
    2,        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,
    24036583, 25964951, 30402457, 32582657};
ll qpow(ll a, ll b) {
  ll r = 1;
  for (; b > 0; b /= 2) {
    if (b & 1) r = r * a % Mod;
    a = a * a % Mod;
  }
  return r;
}
int main() {
  ios ::sync_with_stdio(false);
  int n;
  cin >> n;
  cout << qpow(2, magic[n - 1] - 1) - 1 << '\n';
}

### Prompt

Please formulate a Cpp solution to 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;
using ll = long long;
const ll Mod = (ll)1e9 + 7;
int magic[] = {
    2,        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,
    24036583, 25964951, 30402457, 32582657};
ll qpow(ll a, ll b) {
  ll r = 1;
  for (; b > 0; b /= 2) {
    if (b & 1) r = r * a % Mod;
    a = a * a % Mod;
  }
  return r;
}
int main() {
  ios ::sync_with_stdio(false);
  int n;
  cin >> n;
  cout << qpow(2, magic[n - 1] - 1) - 1 << '\n';
}

```