#include <bits/stdc++.h>
using namespace std;
template <class T>
int size(T x) {
  return x.size();
}
bool isPrime(int n) {
  if (n <= 1) return false;
  if (n <= 3) return true;
  if (n % 2 == 0 || n % 3 == 0) return false;
  if (n < 25) return true;
  int s = static_cast<int>(sqrt(static_cast<double>(n)));
  for (int i = 5; i <= s; i += 6) {
    if (n % i == 0) return false;
    if (n % (i + 2) == 0) return false;
  }
  return true;
}
int reverse(int n) {
  int r = 0;
  while (n) r = r * 10 + (n % 10), n /= 10;
  return r;
}
int main() {
  int n;
  scanf("%d\n", &n);
  int cnt = 0;
  for (int i = 1;; i++) {
    int r = reverse(i);
    if (i == r) continue;
    if (isPrime(i) && isPrime(r)) {
      if (++cnt == n) {
        printf("%d\n", i);
        break;
      }
    }
  }
  return 0;
}
