#include <bits/stdc++.h>
inline unsigned int getuint() {
  char w = getchar();
  while (w < '0' || '9' < w) w = getchar();
  unsigned int ans = 0;
  for (; '0' <= w && w <= '9'; w = getchar()) ans = ans * 10 + w - '0';
  return ans;
}
const int mod = 1000000007;
inline long long bin(int y) {
  long long x = 2, ans = 1;
  for (; y; y >>= 1, x = x * x % mod)
    if (y & 1) ans = ans * x % mod;
  return ans;
}
const int a[] = {
    233,      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};
int main() {
  int n = getuint();
  printf("%I64d\n", (bin(a[n] - 1) + mod - 1) % mod);
  return 0;
}
