#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
int mp[50] = {0,        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, 37156667, 42643801, 43112609};
int main() {
  int n;
  scanf("%d", &n);
  int k = mp[n];
  long long ans = 1;
  long long a = 2;
  k--;
  while (k) {
    if (k & 1) ans = (ans * a) % MOD;
    k >>= 1;
    a = (a * a) % MOD;
  }
  printf("%I64d\n", (ans + MOD - 1) % MOD);
  return 0;
}

### Prompt

Develop a solution in cpp to the problem described below:

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 MOD = 1000000007;
int mp[50] = {0,        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, 37156667, 42643801, 43112609};
int main() {
  int n;
  scanf("%d", &n);
  int k = mp[n];
  long long ans = 1;
  long long a = 2;
  k--;
  while (k) {
    if (k & 1) ans = (ans * a) % MOD;
    k >>= 1;
    a = (a * a) % MOD;
  }
  printf("%I64d\n", (ans + MOD - 1) % MOD);
  return 0;
}

```