#include <bits/stdc++.h>
using namespace std;
int dp[10000005];
int get(int a) {
  long long i, j, k;
  int m = 1000000007;
  i = 1;
  j = 2;
  while (a > 0) {
    if (a % 2 == 1) {
      i = (i * j) % m;
    }
    j = (j * j) % m;
    a /= 2;
  }
  i = (i + m - 1) % m;
  return i;
}
int re[45] = {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};
int main() {
  int i, j, k, t1, t2, t3;
  while (scanf("%d", &k) != EOF) {
    printf("%d\n", get(re[k - 1] - 1));
  }
  return 0;
}
