#include <bits/stdc++.h>
using namespace std;
vector<int> v;
int main() {
  v.push_back(2);
  v.push_back(3);
  v.push_back(5);
  v.push_back(7);
  v.push_back(13);
  v.push_back(17);
  v.push_back(19);
  v.push_back(31);
  v.push_back(61);
  v.push_back(89);
  v.push_back(107);
  v.push_back(127);
  v.push_back(521);
  v.push_back(607);
  v.push_back(1279);
  v.push_back(2203);
  v.push_back(2281);
  v.push_back(3217);
  v.push_back(4253);
  v.push_back(4423);
  v.push_back(9689);
  v.push_back(9941);
  v.push_back(11213);
  v.push_back(19937);
  v.push_back(21701);
  v.push_back(23209);
  v.push_back(44497);
  v.push_back(86243);
  v.push_back(110503);
  v.push_back(132049);
  v.push_back(216091);
  v.push_back(756839);
  v.push_back(859433);
  v.push_back(1257787);
  v.push_back(1398269);
  v.push_back(2976221);
  v.push_back(3021377);
  v.push_back(6972593);
  v.push_back(13466917);
  v.push_back(20996011);
  v.push_back(24036583);
  v.push_back(25964951);
  v.push_back(30402457);
  v.push_back(32582657);
  int n;
  cin >> n;
  int ans = 1;
  int ans2;
  int MOD = 1000000007;
  for (int i = 0; i < v[n - 1] - 1; i++) {
    ans *= 2;
    ans %= MOD;
    ans2 = ans - 1;
  }
  cout << ans2;
  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;
vector<int> v;
int main() {
  v.push_back(2);
  v.push_back(3);
  v.push_back(5);
  v.push_back(7);
  v.push_back(13);
  v.push_back(17);
  v.push_back(19);
  v.push_back(31);
  v.push_back(61);
  v.push_back(89);
  v.push_back(107);
  v.push_back(127);
  v.push_back(521);
  v.push_back(607);
  v.push_back(1279);
  v.push_back(2203);
  v.push_back(2281);
  v.push_back(3217);
  v.push_back(4253);
  v.push_back(4423);
  v.push_back(9689);
  v.push_back(9941);
  v.push_back(11213);
  v.push_back(19937);
  v.push_back(21701);
  v.push_back(23209);
  v.push_back(44497);
  v.push_back(86243);
  v.push_back(110503);
  v.push_back(132049);
  v.push_back(216091);
  v.push_back(756839);
  v.push_back(859433);
  v.push_back(1257787);
  v.push_back(1398269);
  v.push_back(2976221);
  v.push_back(3021377);
  v.push_back(6972593);
  v.push_back(13466917);
  v.push_back(20996011);
  v.push_back(24036583);
  v.push_back(25964951);
  v.push_back(30402457);
  v.push_back(32582657);
  int n;
  cin >> n;
  int ans = 1;
  int ans2;
  int MOD = 1000000007;
  for (int i = 0; i < v[n - 1] - 1; i++) {
    ans *= 2;
    ans %= MOD;
    ans2 = ans - 1;
  }
  cout << ans2;
  return 0;
}

```