#include <bits/stdc++.h>
using namespace std;
long double pie = 3.141592653589793238462643383279;
long long mod = 1e9 + 7;
long long dx[] = {-1, 1, 0, 0};
long long dy[] = {0, 0, 1, -1};
long long fact[2000005];
long long infact[2000005];
long long inv(long long a) {
  long long y = mod - 2;
  long long r = 1;
  while (y != 0) {
    if (y & 1) {
      r *= a;
      r %= mod;
    }
    y /= 2;
    a *= a;
    a %= mod;
  }
  return r;
}
long long po(long long a, long long y) {
  long long r = 1;
  while (y != 0) {
    if (y & 1) {
      r *= a;
      r %= mod;
    }
    y /= 2;
    a *= a;
    a %= mod;
  }
  return r;
}
void facto() {
  fact[0] = 1;
  for (long long i = 1; i < (long long)2000005; ++i) {
    fact[i] = i * fact[i - 1];
    fact[i] %= mod;
  }
  for (long long i = 0; i < (long long)2000005; ++i) infact[i] = inv(fact[i]);
}
long long nck(long long n, long long k) {
  if (k < 0 || k > n) return 0;
  long long ret = fact[n];
  ret *= infact[k];
  ret %= mod;
  ret *= infact[n - k];
  ret %= mod;
  return ret;
}
long long n, m;
vector<long long> adj[1000005];
bool vis[1000005];
bool vis2[1000005];
long long ans[1000005];
bool poss = 1;
long long dfs(long long c, long long p) {
  bool lp = 1;
  long long leaf = 0;
  for (auto it : adj[c]) {
    if (it != p) {
      lp = 0;
      leaf += dfs(it, c);
    }
  }
  if (lp)
    return 1;
  else {
    if (leaf < 3) poss = 0;
    return 0;
  }
}
void dfs2(long long s, long long val) {
  if (vis2[s]) return;
  vis2[s] = 1;
  ans[s] = val;
  for (auto it : adj[s]) dfs2(it, val);
}
long long rev(long long a) {
  long long r = 0;
  while (a != 0) {
    r += a % 10;
    r *= 10;
    a /= 10;
  }
  return r / 10;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n;
  cin >> n;
  long long st = 1e5 + 5;
  while (n--) {
    cout << st << " ";
    ++st;
  }
  return 0;
}

### Prompt

Generate a Cpp solution to the following problem:

Iahub and Iahubina went to a date at a luxury restaurant. Everything went fine until paying for the food. Instead of money, the waiter wants Iahub to write a Hungry sequence consisting of n integers. 

A sequence a1, a2, ..., an, consisting of n integers, is Hungry if and only if: 

  * Its elements are in increasing order. That is an inequality ai < aj holds for any two indices i, j (i < j). 
  * For any two indices i and j (i < j), aj must not be divisible by ai. 



Iahub is in trouble, so he asks you for help. Find a Hungry sequence with n elements.

Input

The input contains a single integer: n (1 ≤ n ≤ 105).

Output

Output a line that contains n space-separated integers a1 a2, ..., an (1 ≤ ai ≤ 107), representing a possible Hungry sequence. Note, that each ai must not be greater than 10000000 (107) and less than 1.

If there are multiple solutions you can output any one.

Examples

Input

3


Output

2 9 15


Input

5


Output

11 14 20 27 31

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
long double pie = 3.141592653589793238462643383279;
long long mod = 1e9 + 7;
long long dx[] = {-1, 1, 0, 0};
long long dy[] = {0, 0, 1, -1};
long long fact[2000005];
long long infact[2000005];
long long inv(long long a) {
  long long y = mod - 2;
  long long r = 1;
  while (y != 0) {
    if (y & 1) {
      r *= a;
      r %= mod;
    }
    y /= 2;
    a *= a;
    a %= mod;
  }
  return r;
}
long long po(long long a, long long y) {
  long long r = 1;
  while (y != 0) {
    if (y & 1) {
      r *= a;
      r %= mod;
    }
    y /= 2;
    a *= a;
    a %= mod;
  }
  return r;
}
void facto() {
  fact[0] = 1;
  for (long long i = 1; i < (long long)2000005; ++i) {
    fact[i] = i * fact[i - 1];
    fact[i] %= mod;
  }
  for (long long i = 0; i < (long long)2000005; ++i) infact[i] = inv(fact[i]);
}
long long nck(long long n, long long k) {
  if (k < 0 || k > n) return 0;
  long long ret = fact[n];
  ret *= infact[k];
  ret %= mod;
  ret *= infact[n - k];
  ret %= mod;
  return ret;
}
long long n, m;
vector<long long> adj[1000005];
bool vis[1000005];
bool vis2[1000005];
long long ans[1000005];
bool poss = 1;
long long dfs(long long c, long long p) {
  bool lp = 1;
  long long leaf = 0;
  for (auto it : adj[c]) {
    if (it != p) {
      lp = 0;
      leaf += dfs(it, c);
    }
  }
  if (lp)
    return 1;
  else {
    if (leaf < 3) poss = 0;
    return 0;
  }
}
void dfs2(long long s, long long val) {
  if (vis2[s]) return;
  vis2[s] = 1;
  ans[s] = val;
  for (auto it : adj[s]) dfs2(it, val);
}
long long rev(long long a) {
  long long r = 0;
  while (a != 0) {
    r += a % 10;
    r *= 10;
    a /= 10;
  }
  return r / 10;
}
int32_t main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  long long n;
  cin >> n;
  long long st = 1e5 + 5;
  while (n--) {
    cout << st << " ";
    ++st;
  }
  return 0;
}

```