#include <bits/stdc++.h>
using namespace std;
const long long inf = 1e18;
long long gcd(long long a, long long b) {
  if (a == 0) {
    return b;
  }
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}
long long power(long long a, long long n) {
  if (n == 0) {
    return 1ll;
  }
  if (n == 1) {
    return a % 1000000007;
  }
  long long p = power(a, n / 2);
  p = (p * p) % 1000000007;
  if (n % 2 == 1) {
    p = (p * a) % 1000000007;
  }
  return p;
}
int main() {
  long long mersexp[] = {
      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};
  int n;
  cin >> n;
  long long ans;
  ans = (power(2ll, mersexp[n - 1] - 1) - 1) % 1000000007;
  cout << ans << endl;
}

### Prompt

Please create a solution in CPP 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;
const long long inf = 1e18;
long long gcd(long long a, long long b) {
  if (a == 0) {
    return b;
  }
  if (b == 0) {
    return a;
  }
  return gcd(b, a % b);
}
long long power(long long a, long long n) {
  if (n == 0) {
    return 1ll;
  }
  if (n == 1) {
    return a % 1000000007;
  }
  long long p = power(a, n / 2);
  p = (p * p) % 1000000007;
  if (n % 2 == 1) {
    p = (p * a) % 1000000007;
  }
  return p;
}
int main() {
  long long mersexp[] = {
      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};
  int n;
  cin >> n;
  long long ans;
  ans = (power(2ll, mersexp[n - 1] - 1) - 1) % 1000000007;
  cout << ans << endl;
}

```