#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 5;
const int Mod = 1000000007;
const int INF = 0x3f3f3f3f;
const long long LL_INF = 0x3f3f3f3f3f3f3f3f;
const double e = exp(1);
const double PI = acos(-1);
const double ERR = 1e-10;
long long mersenne[] = {
    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};
long long pow_mod(long long a, long long b) {
  long long res = 1;
  a = a % Mod;
  while (b) {
    if (b & 1) res = (res * a) % Mod;
    b = b >> 1;
    a = (a * a) % Mod;
  }
  return res;
}
int main() {
  int n;
  scanf("%d", &n);
  printf("%lld\n", (pow_mod(2LL, mersenne[n - 1] - 1) - 1 + Mod) % Mod);
  return 0;
}
