#include <bits/stdc++.h>
using namespace std;
const long long INF = (long long)1e18 + 7, till = 0, N = 1e5 + 1;
long long gcd(long long a, long long b) { return b != 0 ? gcd(b, a % b) : a; }
vector<vector<long long> > adj(N);
long long vis[N], height[N], parent[N];
long long ele = -1;
priority_queue<long long, vector<long long>, greater<long long> > q;
bool comp(pair<long long, long long> p1, pair<long long, long long> p2) {
  return p1.first - p1.second > p2.first - p2.second;
}
long long ss(long long x, long long y) { return (x - y) * (x - y); }
void print(long long f) {
  if (f)
    cout << "YES" << '\n';
  else
    cout << "NO" << '\n';
}
long long prime(long long a) {
  for (long long i = 3; i <= round(sqrt(a)); ++i) {
    if (a % i == 0) {
      return i;
    }
  }
  return 1;
}
string kmp(string s) {
  string a = s + '#';
  reverse(s.begin(), s.end());
  a += s;
  vector<long long> v(a.length());
  long long j = 0;
  for (long long i = 1; i < a.length(); i++) {
    while (j != 0 && a[j] != a[i]) {
      j = v[j - 1];
    }
    if (a[j] == a[i]) j++;
    v[i] = j;
  }
  return a.substr(0, j);
}
long long ans(long long a, long long n, long long m) {
  if (n == 0 || n == 1) return pow(a, n);
  long long x = 1;
  x *= ans(a, n / 2, m);
  x %= m;
  x *= x;
  x %= m;
  if (n % 2) x *= a;
  x %= m;
  return x;
}
long long n, t, x, y, a, b, f;
string s;
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  long long M = 1e9 + 1;
  long long x = n, y = n + 1, z = n * n + n;
  if (y == z || z >= M)
    cout << -1 << '\n';
  else
    cout << x << " " << y << " " << z << '\n';
}

### Prompt

Your challenge is to write a CPP solution to the following problem:

Vladik and Chloe decided to determine who of them is better at math. Vladik claimed that for any positive integer n he can represent fraction <image> as a sum of three distinct positive fractions in form <image>.

Help Vladik with that, i.e for a given n find three distinct positive integers x, y and z such that <image>. Because Chloe can't check Vladik's answer if the numbers are large, he asks you to print numbers not exceeding 109.

If there is no such answer, print -1.

Input

The single line contains single integer n (1 ≤ n ≤ 104).

Output

If the answer exists, print 3 distinct numbers x, y and z (1 ≤ x, y, z ≤ 109, x ≠ y, x ≠ z, y ≠ z). Otherwise print -1.

If there are multiple answers, print any of them.

Examples

Input

3


Output

2 7 42


Input

7


Output

7 8 56

### Response

```cpp
#include <bits/stdc++.h>
using namespace std;
const long long INF = (long long)1e18 + 7, till = 0, N = 1e5 + 1;
long long gcd(long long a, long long b) { return b != 0 ? gcd(b, a % b) : a; }
vector<vector<long long> > adj(N);
long long vis[N], height[N], parent[N];
long long ele = -1;
priority_queue<long long, vector<long long>, greater<long long> > q;
bool comp(pair<long long, long long> p1, pair<long long, long long> p2) {
  return p1.first - p1.second > p2.first - p2.second;
}
long long ss(long long x, long long y) { return (x - y) * (x - y); }
void print(long long f) {
  if (f)
    cout << "YES" << '\n';
  else
    cout << "NO" << '\n';
}
long long prime(long long a) {
  for (long long i = 3; i <= round(sqrt(a)); ++i) {
    if (a % i == 0) {
      return i;
    }
  }
  return 1;
}
string kmp(string s) {
  string a = s + '#';
  reverse(s.begin(), s.end());
  a += s;
  vector<long long> v(a.length());
  long long j = 0;
  for (long long i = 1; i < a.length(); i++) {
    while (j != 0 && a[j] != a[i]) {
      j = v[j - 1];
    }
    if (a[j] == a[i]) j++;
    v[i] = j;
  }
  return a.substr(0, j);
}
long long ans(long long a, long long n, long long m) {
  if (n == 0 || n == 1) return pow(a, n);
  long long x = 1;
  x *= ans(a, n / 2, m);
  x %= m;
  x *= x;
  x %= m;
  if (n % 2) x *= a;
  x %= m;
  return x;
}
long long n, t, x, y, a, b, f;
string s;
signed main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  long long M = 1e9 + 1;
  long long x = n, y = n + 1, z = n * n + n;
  if (y == z || z >= M)
    cout << -1 << '\n';
  else
    cout << x << " " << y << " " << z << '\n';
}

```