#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#pragma warning(disable:4996)
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 1000001
#define eps 1e-9
const int inf = 0x7fffffff;
/*struct node
{
	int l, r;
	long long sum;
	long long maxz;
};
node segtree[maxn];
long long  num[maxn];
void build(int i, int l, int r)
{
	segtree[i].l = l;
	segtree[i].r = r;
	if (l == r)
	{
		segtree[i].maxz = num[l];
		segtree[i].sum = num[l];
		return;
	}
	int mid = (l + r) / 2;
	build(i * 2, l, mid);
	build(i * 2 + 1, mid + 1, r);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
void add(int i, int t, int b)
{
	if (segtree[i].l == t && segtree[i].r == t)
	{
		segtree[i].maxz += b;
		i /= 2;
		segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
		return;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (t <= mid)
		add(i * 2, t, b);
	else add(i * 2 + 1, t, b);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
int query(int i, int l, int r)
{
	if (segtree[i].l == l && segtree[i].r == r)
	{
		return segtree[i].maxz;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (l > mid)
		return query(i * 2 + 1, l, r);
	if (r <= mid)
		return query(i * 2, l, r);
	return max(query(i * 2, l, mid), query(i * 2 + 1, mid + 1, r));
////

}*/
int main()
{
	int n, x,a[1001];
	while (cin >> n >> x)
	{
		int sum = 0;
		for (int i = 0;i < n;i++)
		{
			cin >> a[i];
			sum += a[i];
		}
		if (sum == 0) cout << 0 << endl;
		else if (abs(sum)%x == 0) cout << abs(sum) / x << endl;
		else cout << abs(sum)/x + 1 << endl;

	}

}


#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#pragma warning(disable:4996)
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 1000001
#define eps 1e-9
const int inf = 0x7fffffff;//
/*struct node
{
	int l, r;
	long long sum;
	long long maxz;
};
node segtree[maxn];
long long  num[maxn];
void build(int i, int l, int r)
{
	segtree[i].l = l;
	segtree[i].r = r;
	if (l == r)
	{
		segtree[i].maxz = num[l];
		segtree[i].sum = num[l];
		return;
	}
	int mid = (l + r) / 2;
	build(i * 2, l, mid);
	build(i * 2 + 1, mid + 1, r);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
void add(int i, int t, int b)
{
	if (segtree[i].l == t && segtree[i].r == t)
	{
		segtree[i].maxz += b;
		i /= 2;
		segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
		return;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (t <= mid)
		add(i * 2, t, b);
	else add(i * 2 + 1, t, b);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
int query(int i, int l, int r)
{
	if (segtree[i].l == l && segtree[i].r == r)
	{
		return segtree[i].maxz;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (l > mid)
		return query(i * 2 + 1, l, r);
	if (r <= mid)
		return query(i * 2, l, r);
	return max(query(i * 2, l, mid), query(i * 2 + 1, mid + 1, r));

}*/
int main()
{
	int n, x,a[1001];
	while (cin >> n >> x)
	{
		int sum = 0;
		for (int i = 0;i < n;i++)
		{
			cin >> a[i];
			sum += a[i];
		}
		if (sum == 0) cout << 0 << endl;
		else if (abs(sum)%x == 0) cout << abs(sum) / x << endl;
		else cout << abs(sum)/x + 1 << endl;

	}

}


#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#pragma warning(disable:4996)
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 1000001
#define eps 1e-9
const int inf = 0x7fffffff;
/*struct node
{
	int l, r;
	long long sum;
	long long maxz;
};
node segtree[maxn];
long long  num[maxn];
void build(int i, int l, int r)
{
	segtree[i].l = l;
	segtree[i].r = r;
	if (l == r)
	{
		segtree[i].maxz = num[l];
		segtree[i].sum = num[l];
		return;
	}
	int mid = (l + r) / 2;
	build(i * 2, l, mid);
	build(i * 2 + 1, mid + 1, r);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
void add(int i, int t, int b)
{
	if (segtree[i].l == t && segtree[i].r == t)
	{
		segtree[i].maxz += b;
		i /= 2;
		segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
		return;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (t <= mid)
		add(i * 2, t, b);
	else add(i * 2 + 1, t, b);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
int query(int i, int l, int r)
{
	if (segtree[i].l == l && segtree[i].r == r)
	{
		return segtree[i].maxz;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (l > mid)
		return query(i * 2 + 1, l, r);
	if (r <= mid)
		return query(i * 2, l, r);
	return max(query(i * 2, l, mid), query(i * 2 + 1, mid + 1, r));

}*/
int main()
{
	int n, x,a[1001];
	while (cin >> n >> x)
	{
		int sum = 0;
		for (int i = 0;i < n;i++)
		{
			cin >> a[i];
			sum += a[i];
		}
		if (sum == 0) cout << 0 << endl;
		else if (abs(sum)%x == 0) cout << abs(sum) / x << endl;
		else cout << abs(sum)/x + 1 << endl;
///
	}

}


#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#pragma warning(disable:4996)
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 1000001
#define eps 1e-9
const int inf = 0x7fffffff;
/*struct node
{
	int l, r;
	long long sum;
	long long maxz;
};
node segtree[maxn];
long long  num[maxn];
void build(int i, int l, int r)
{
	segtree[i].l = l;
	segtree[i].r = r;
	if (l == r)
	{
		segtree[i].maxz = num[l];
		segtree[i].sum = num[l];
		return;
	}
	int mid = (l + r) / 2;
	build(i * 2, l, mid);
	build(i * 2 + 1, mid + 1, r);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
void add(int i, int t, int b)
{
	if (segtree[i].l == t && segtree[i].r == t)
	{
		segtree[i].maxz += b;
		i /= 2;
		segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
		return;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (t <= mid)
		add(i * 2, t, b);
	else add(i * 2 + 1, t, b);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
int query(int i, int l, int r)
{
	if (segtree[i].l == l && segtree[i].r == r)
	{
		return segtree[i].maxz;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (l > mid)
		return query(i * 2 + 1, l, r);
	if (r <= mid)
		return query(i * 2, l, r);
	return max(query(i * 2, l, mid), query(i * 2 + 1, mid + 1, r));

}*/
int main()
{
	int n, x,a[1001];
	while (cin >> n >> x)
	{
		int sum = 0;
		for (int i = 0;i < n;i++)
		{
			cin >> a[i];
			sum += a[i];
		}
		if (sum == 0) cout << 0 << endl;
		else if (abs(sum)%x == 0) cout << abs(sum) / x << endl;
		else cout << abs(sum)/x + 1 << endl;

	}

}


#include <cstdio>
#include <cmath>
#include <cstring>
#include <ctime>
#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
#include <sstream>
#include <queue>
#include <typeinfo>
#include <fstream>
#include <map>
#pragma warning(disable:4996)
typedef long long ll;
using namespace std;
//freopen("D.in","r",stdin);
//freopen("D.out","w",stdout);
#define sspeed ios_base::sync_with_stdio(0);cin.tie(0)
#define maxn 1000001
#define eps 1e-9
const int inf = 0x7fffffff;
/*struct node
{
	int l, r;
	long long sum;
	long long maxz;
};
node segtree[maxn];
long long  num[maxn];
void build(int i, int l, int r)
{
	segtree[i].l = l;
	segtree[i].r = r;
	if (l == r)
	{
		segtree[i].maxz = num[l];
		segtree[i].sum = num[l];
		return;
	}
	int mid = (l + r) / 2;
	build(i * 2, l, mid);
	build(i * 2 + 1, mid + 1, r);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
void add(int i, int t, int b)
{
	if (segtree[i].l == t && segtree[i].r == t)
	{
		segtree[i].maxz += b;
		i /= 2;
		segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
		return;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (t <= mid)
		add(i * 2, t, b);
	else add(i * 2 + 1, t, b);
	segtree[i].maxz = max(segtree[i * 2].maxz, segtree[i * 2 + 1].maxz);
}
int query(int i, int l, int r)
{
	if (segtree[i].l == l && segtree[i].r == r)
	{
		return segtree[i].maxz;
	}
	int mid = (segtree[i].l + segtree[i].r) / 2;
	if (l > mid)
		return query(i * 2 + 1, l, r);
	if (r <= mid)
		return query(i * 2, l, r);
	return max(query(i * 2, l, mid), query(i * 2 + 1, mid + 1, r));

}*/
int main()
{
	int n, x,a[1001];
	while (cin >> n >> x)
	{
		int sum = 0;
		for (int i = 0;i < n;i++)
		{
			cin >> a[i];
			sum += a[i];
		}
		if (sum == 0) cout << 0 << endl;
		else if (sum > 0) cout << 1 << endl;
		else if (abs(sum)%x == 0) cout << abs(sum) / x << endl;
		else cout << abs(sum)/x + 1 << endl;

	}

}


#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,x;
    cin>>n>>x;
    int in;
    int sum=0;
    for(int i=0;i<n;i++)
    { cin>>in;
        sum+=in;
    }
    sum=abs(sum);
    if(sum==0)
    cout<<0;
    else
    {
    if(abs(sum)<=x)
        cout<<1;
    else if(abs(sum)>x)
    {   int n1=sum%x;
        int n2=sum/x;
        if(n1==0)
        cout<<n2;
        else
        cout<<1+n2;
    }
    }
    return 0;

}


#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,x;
    cin>>n>>x;
    int in;
    int sum=0;
    for(int i=0;i<n;i++)
    { cin>>in;
        sum+=in;
    }
    sum=abs(sum);
    if(sum==0)
    cout<<0;
    else
    {
    if(abs(sum)<=x)
        cout<<1;
    else if(abs(sum)>x)
    {
        int n2=sum/x;
        cout<<1+n2;
    }
    }
    return 0;

}


#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,x;
    cin>>n>>x;
    int in;
    int sum=0;
    for(int i=0;i<n;i++)
    { cin>>in;
        sum+=in;
    }
    sum=abs(sum);
    if(abs(sum)<=x)
        cout<<1;
    else if(abs(sum)>x)
    {
        int n2=sum/x;
        cout<<1+n2;
    }
    return 0;

}


#include <bits/stdc++.h>
using namespace std;

int main()
{
    int n,x;
    cin>>n>>x;
    int in;
    int sum=0;
    for(int i=0;i<n;i++)
    { cin>>in;
        sum+=in;
    }
    sum=abs(sum);
    if(abs(sum)<=x)
        cout<<1;
    else if(abs(sum)>x)
    {
        int n1=sum%x;
        int n2=sum/x;
        cout<<n1+n2;
    }
    return 0;

}


#include<bits/stdc++.h>
using namespace std;

main()
{
int n,x, i, a,ans=0;
map<int,int> mp;
map<int,int>::iterator it;
cin>>n>>x;
for(i=0; i<n; i++){
    cin>>a;
    if(mp[-a]>0)mp[-a]--;
    else mp[a]++;
}

for(it=mp.begin(); it!=mp.end(); it++){
    ans+=it->second;
}
cout<<ans;

}


#include<bits/stdc++.h>
using namespace std;

main()
{
int n,x, i, a,ans=0;
map<int,int> mp;
map<int,int>::iterator it;
cin>>n>>x;
for(i=0; i<n; i++){
    cin>>a;
    if(mp[-a]>0 && abs(a)<x)mp[-a]--;
    else if(abs(a)<x) mp[a]++;
}

for(it=mp.begin(); it!=mp.end(); it++){
    ans+=it->second;
}
cout<<ans;

}


#include<bits/stdc++.h>
using namespace std;

main()
{
int n,x, i, a,ans=0,xx=0;
cin>>n>>x;
for(i=0; i<n; i++){
    cin>>a;
    xx+=a;
}
ans=abs(xx)/x;
if(abs(xx)%x>0)ans++;
cout<<ans;

}


#include<bits/stdc++.h>
using namespace std;

main()
{
int n,x, i, a,ans=0;
map<int,int> mp;
map<int,int>::iterator it;
cin>>n>>x;
for(i=0; i<n; i++){
    cin>>a;
    if(mp[-a]>0 && abs(a)<=x)mp[-a]--;
    else if(abs(a)<=x) mp[a]++;
}

for(it=mp.begin(); it!=mp.end(); it++){
    ans+=it->second;
}
cout<<ans;

}


#include <bits/stdc++.h>
#define mod 1000000007
#define ll long long
#define pb push_back
using namespace std;

int main()
{
    int n,x;
    cin >> n >> x;
    int arr[n];
    int neg=0;
    int pos=0;
    int zeros=0;
    int sum=0;
    for(int i=0;i<n;i++){
        cin >> arr[i];
        sum += arr[i];
    }
    if(abs(sum)<x){
        cout << 1 << endl;
    }
    else{
        sum = abs(sum);
        cout << (sum/x) + (sum%x) << endl;
    }
    return 0;
}


#include <bits/stdc++.h>
#define mod 1000000007
#define ll long long
#define pb push_back
using namespace std;

int main()
{
    int n,x;
    cin >> n >> x;
    int arr[n];
    int neg=0;
    int pos=0;
    int zeros=0;
    for(int i=0;i<n;i++){
        cin >> arr[i];
        if(arr[i]<0){
            neg++;
        }
        else if(arr[i]==0){
            zeros++;
        }
        else{
            pos++;
        }
    }
    cout << abs(pos-neg) << endl;
    return 0;
}


#include <bits/stdc++.h>
#define mod 1000000007
#define ll long long
#define pb push_back
using namespace std;

int main()
{
    int n,x;
    cin >> n >> x;
    int arr[n];
    int neg=0;
    int pos=0;
    int zeros=0;
    int sum=0;
    for(int i=0;i<n;i++){
        cin >> arr[i];
        sum += arr[i];
    }
    sum = abs(sum);
    if(sum%x==0){
        sum /= x;
    }
    else{
        sum = sum/x + 1;
    }
    cout << sum << endl;
    return 0;
}


#include <bits/stdc++.h>
#define mod 1000000007
#define ll long long
#define pb push_back
using namespace std;

int main()
{
    int n,x;
    cin >> n >> x;
    int arr[n];
    int neg=0;
    int pos=0;
    int zeros=0;
    int sum=0;
    for(int i=0;i<n;i++){
        cin >> arr[i];
        sum += arr[i];
    }
    if(sum==0){
        cout << 0 << endl;
    }
    else if(abs(sum)<x){
        cout << 1 << endl;
    }
    else{
        sum = abs(sum);
        cout << (sum/x) + (sum%x) << endl;
    }
    return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n, x, count=0;
	cin >> n >> x;
	int arr[n];
	for(int i=0;i<n;i++)
	{
		cin >> arr[i];
		count+=arr[i];
	}
	if(abs(count)%x==0)
	{
		cout << abs(count)/x << endl;
	}
	else
	{
		cout << abs(count)/x + 1 << endl;
	}
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n, x, count=0;
	cin >> n >> x;
	int arr[n];
	for(int i=0;i<n;i++)
	{
		cin >> arr[i];
		count+=arr[i];
	}
	if(abs(count)%x==0)
	{
		cout << abs(count) << endl;
	}
	else
	{
		cout << abs(count)/x + 1 << endl;
	}
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n, x, count=0;
	cin >> n >> x;
	int arr[n];
	for(int i=0;i<n;i++)
	{
		cin >> arr[i];
		count+=arr[i];
	}
	cout << abs(count)/x + abs(count)%x << endl;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n, x, count=0;
	cin >> n >> x;
	int arr[n];
	for(int i=0;i<n;i++)
	{
		cin >> arr[i];
		count+=arr[i];
	}
	cout << abs(count)/x + 1 << endl;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
	int n, x, count=0;
	cin >> n >> x;
	int arr[n];
	for(int i=0;i<n;i++)
	{
		cin >> arr[i];
		count+=arr[i];
	}
	cout << abs(count)%x + 1 << endl;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,x,sum=0,c=0,i;
	cin>>n>>x;
	int a[n];
	for(i=0;i<n;i++)
	{
		cin>>a[i];
		sum+=a[i];
	}
	if(x>=abs(sum))
	{
		cout<<(sum>0? 1:0);
	}
	else
	{
	sum=abs(sum);
	c+=sum/x;
	cout<<c+1;
	}

return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	long int n,x,sum=0,c=0,i;
	cin>>n>>x;
	int a[n];
	for(i=0;i<n;i++)
	{
		cin>>a[i];
		sum+=a[i];
	}
	if(x>=abs(sum))
	{
		sum=abs(sum);
		cout<<(sum>0? 1:0);
	}
	else
	{
	sum=abs(sum);
	c+=sum/x;
	if(sum%x==0)
	{
		cout<<c;
	}
	else
	{
	cout<<c+1;
	}

	}

return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,x,sum=0,c=0,i;
	cin>>n>>x;
	int a[n];
	for(i=0;i<n;i++)
	{
		cin>>a[i];
		sum+=a[i];
	}
	if(x>=abs(sum))
	{
		sum=abs(sum);
		cout<<(sum>0? 1:0);
	}
	else
	{
	sum=abs(sum);
	c+=sum/x;
	cout<<c+1;
	}

return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,x,sum=0,c=0,i;
	cin>>n>>x;
	int a[n];
	for(i=0;i<n;i++)
	{
		cin>>a[i];
		sum+=a[i];
	}
	if(x>=abs(sum))
	{
		cout<<1;
	}
	else
	{
	sum=abs(sum);
	c+=sum/x;
	cout<<c+1;
	}

return 0;
}


#include <bits/stdc++.h>
using namespace std;
int main ()
{
    int n,x,d=0;
    cin>>n>>x;
    int a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        d+=a[i];
    }
    if(abs(d)<=x){
        cout<<"1";
    return 0;
    }
    if(abs(d)%x==0)
    {
        cout<<abs(d/x);
    }
    else
    {
        cout<<abs(d/x-1);
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int main ()
{
    int n,x,d=0;
    cin>>n>>x;
    int a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        d+=a[i];
    }
    if(abs(d)<=x){
        cout<<"1";
    return 0;
    }
    if(abs(d)%x==0)
    {
        cout<<abs(d/x);
    }
    else
    {
        cout<<abs(d/(x))+1;
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int main ()
{
    int n,x,d=0;
    cin>>n>>x;
    int a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        d+=a[i];
    }
    if(abs(d)<=x){
        cout<<"1";
    return 0;
    }
    if(abs(d)%x==0)
    {
        cout<<abs(d/x);
    }
    else
    {
        cout<<abs(d/(x-1));
    }
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
int main ()
{
    int n,x,d=0;
    cin>>n>>x;
    int a[n];
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        d+=a[i];
    }
    if(d==0)
    {
        cout<<"0";
        return 0;
    }
    if(abs(d)<=x){
        cout<<"1";
    return 0;
    }
    if(abs(d)%x==0)
    {
        cout<<abs(d/x);
    }
    else
    {
        cout<<abs(d/(x))+1;
    }
    return 0;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum=0;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0&&sum%x==0)
		cout << (sum/x)*-1;
	else if (sum < 0 )
		cout << (sum / x-1)*-1;
	else if (sum == 0)
		cout << 0;
	else if (sum%x==0)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum=0;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0&&sum%x==0)
		cout << sum/x;
	else if (sum < 0 )
		cout << sum / x-1;
	else if (sum == 0)
		cout << 0;
	else if (sum%x==0)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum=0;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0)
		cout << sum/x;
	else if (sum == 0)
		cout << 0;
	else if (sum%x==0)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0)
		cout << 1;
	else if (sum == 0)
		cout << 0;
	else if (!sum%x)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum=0;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0)
		cout << 1;
	else if (sum == 0)
		cout << 0;
	else if (!sum%x)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum=0;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0)
		cout << 1;
	else if (sum == 0)
		cout << 0;
	else if (sum%x==0)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0&&sum%x==0)
		cout << sum/x;
	else if (sum < 0 )
		cout << sum / x-1;
	else if (sum == 0)
		cout << 0;
	else if (sum%x==0)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<iostream>
using namespace std;
int main(){
	int n, x, a, sum=0;
	cin >> n >> x;
	for (int i = 0; i < n; i++){
		cin >> a;
		sum += a;
	}
	if (sum < 0)
		cout << sum/x;
	else if (sum == 0)
		cout << 0;
	else if (!sum%x)
		cout << sum / x;
	else
		cout << sum / x + 1;
}


#include<bits/stdc++.h>
using namespace std;
#define p cin>>n>>x;
#define q for(i=1;i<=n;i++)
#define c cin>>j;
#define k ans+=j;
#define l ans=ans/x;
#define o if(ans%x) ans++;
#define u cout<<ans;

int n,x,i,j,ans;
int main()
{
      p q{c k} l o u

}


#include<bits/stdc++.h>
using namespace std;
int n,a,k,i,ans,m;
int main()
{
      cin>>n>>m;
      for(i=1;i<=n;i++)
      {
            cin>>a;
            k+=a;
      }
      k=abs(k);
      m=abs(m);
      if(k%m)
      {
            ans=k/m+1;
      }
      else
      ans=k/m;
      cout<<ans;
}


#include<bits/stdc++.h>
using namespace std;
int n,a,k,i,ans,m;
int main()
{
      cin>>n>>m;
      for(i=1;i<=n;i++)
      {
            cin>>a;
            k+=a;
      }
      m=abs(m);
      if(k%m)
      {
            ans=k/m+1;
      }
      else
      ans=k/m;
      cout<<ans;
}


#include<bits/stdc++.h>
using namespace std;
#define p cin>>n>>x;
#define q for(i=1;i<=n;i++)
#define c cin>>j;
#define k ans+=j;
#define l ans=ans/x;
#define o if(ans%x) l++;
#define u cout<<ans;

int n,x,i,j,ans;
int main()
{
      p q{c k} l o u

}


#include<bits/stdc++.h>
using namespace std;
#define p cin>>n>>x;
#define q for(i=1;i<=n;i++)
#define c cin>>j;
#define k ans+=j;
#define l ans/x;
#define o if(ans%x) l++;
#define u cout<<ans;

int p,q,c,k,l,o,u,n,x,i,j,ans,l;
int main()
{
      p
      q{ ck
      }lou

}


#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;

int main() {
int n,x,sum=0,a[1001],counter=0;
cin >> n >> x;
for (int i=0;i<n;i++){
    cin >> a[i];
    sum+=a[i];
}
while(abs(sum)!=0)
{
    if (sum>0)
    {
        if (sum>=x){
        sum-=x;
        counter++;
        }
        else
        {
            counter++;
            sum=0;
            break;
        }
    }
    else {
        if (abs(sum)>=x){
        sum+=x;
        counter++;
        }
        else {
        counter++;
        sum=0;
        break;
        }
    }
}
cout << counter;

return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main() {
int n,x,num,sum=0;
cin >> n >> x;
for (int i=0;i<n;i++)
{
    cin >> num;
    sum+=num;
}
int c= abs(sum/x);
if (sum%x!=0) c++;
cout <<c;
return 0;
}


#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;

int main() {
int n,x,sum=0,a[1000],counter=0;
cin >> n >> x;
for (int i=0;i<n;i++){
    cin >> a[i];
    sum+=a[i];
}
while(abs(sum)!=0)
{
    if (sum>0)
    {
        if (sum>=x){
        sum-=x;
        counter++;
        }
        else
        {
            counter++;
            sum=0;
            break;
        }
    }
    else {
        if (abs(sum)>=x){
        sum+=x;
        counter++;
        }
        else {
        counter++;
        sum=0;
        break;
        }
    }
}
cout << counter;

return 0;
}


#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <cmath>
#include <string.h>
#include <stdio.h>
#include <math.h>
#include <algorithm>
using namespace std;

int main() {
int n,x,sum=0,a[10],counter=0;
cin >> n >> x;
for (int i=0;i<n;i++){
    cin >> a[i];
    sum+=a[i];
}
while(abs(sum)!=0)
{
    if (sum>0)
    {
        if (sum>=x){
        sum-=x;
        counter++;
        }
        else
        {
            counter++;
            sum=0;
            break;
        }
    }
    else {
        if (abs(sum)>=x){
        sum+=x;
        counter++;
        }
        else {
        counter++;
        sum=0;
        break;
        }
    }
}
cout << counter;

return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }
    ll y=-sum;
    if(abs(y)<=k)
    cout << "1";
    else cout << y/k +1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }

    ll y=-sum;
    else if(y%k==0)
    cout << abs(y)/k;
    else
    cout << abs(y)/k+1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }

    if(y&k==0)
    cout << abs(y)/k;
    else
    cout << abs(y)/k+1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }
    ll y=-sum;
    if(abs(y)<=k)
    cout << "1";
    else cout << abs(y)/k +1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }
    if(sum==0)
    {
    	cout << "0";
    	return 0;
    }
    ll y=-sum;
    if(abs(y)<=k)
    cout << "1";
    else if(y&k==0)
    cout << abs(y)/k;
    else
    cout << abs(y)/k+1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }

    ll y=-sum;
   if(y%k==0)
    cout << abs(y)/k;
    else
    cout << abs(y)/k+1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }
    if(sum==0)
    {
        cout << "0";
        return 0;
    }
    ll y=-sum;
    if(abs(y)<=k)
    cout << "1";
    else cout << abs(y)/k +1;

	return 0;
}


#include <bits/stdc++.h>
#define ll long long int
using namespace std;

int main() {

    ll n,k,sum=0;
    vector<ll> v;
    cin >> n >> k;
    for(ll i=0;i<n;i++)
    {
    	ll x;
        cin >> x;
        sum+=x;
        v.push_back(x);
    }
    ll y=-sum;
    if(y<=k)
    cout << "1";
    else cout << y/k +1;

	return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define MAXV 2147483647
#define MINV -2147483647
#define SYC ios_base::sync_with_stdio(0); cin.tie(0)
#define FR freopen("/Users/naveen/Documents/online_code/input.txt","r",stdin)
#define FW freopen("/Users/naveen/Documents/online_code/output.txt","w",stdout)
#define REP(i,n) for (ll i = 1; i <= n; i++)
typedef long long ll;
typedef vector<vector<ll> > matrix;
#define MOD 1000000007;
int main(){
    int n,k;
    cin>>n>>k;
    int a[n];
    int res=0;
    for(int i = 0 ; i < n ; i++){
        cin>>a[i];
        if(abs(a[i])<=k){
            res+=a[i];
        }
    }
    res=abs(res);
//    cout<<res<<endl;
    int cnt=0;
    for(int i = k ; i>=1 ; i--){
        while(i<=res){
            cnt++;
            res=res-i;
            if(res<=0){
                cout<<cnt<<endl;
                return 0;
            }
        }
    }
    cout<<cnt<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define MAXV 2147483647
#define MINV -2147483647
#define SYC ios_base::sync_with_stdio(0); cin.tie(0)
#define FR freopen("/Users/naveen/Documents/online_code/input.txt","r",stdin)
#define FW freopen("/Users/naveen/Documents/online_code/output.txt","w",stdout)
#define REP(i,n) for (ll i = 1; i <= n; i++)
typedef long long ll;
typedef vector<vector<ll> > matrix;
#define MOD 1000000007;
int main(){
    int n,k;
    cin>>n>>k;
    int a[n];
    map<int,int>mp;
    for(int i = 0 ; i < n ; i++){
        cin>>a[i];
        if(abs(a[i])<=k){
            mp[a[i]]+=1;
            mp[-a[i]]+=0;
        }
    }
    int res=0;
    for(auto x: mp){
//        cout<<x.first<<" "<<x.second<<endl;
        if(x.first>=0)break;
        res+=abs(x.first)*abs(x.second-mp[-x.first]);
    }
//    cout<<res<<endl;
    int cnt=0;
    for(int i = k ; i>=1 ; i--){
        while(i<=res){
            cnt++;
            res=res-i;
            if(res<=0){
                cout<<cnt<<endl;
                return 0;
            }
        }
    }
//    cout<<res<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define MAXV 2147483647
#define MINV -2147483647
#define SYC ios_base::sync_with_stdio(0); cin.tie(0)
#define FR freopen("/Users/naveen/Documents/online_code/input.txt","r",stdin)
#define FW freopen("/Users/naveen/Documents/online_code/output.txt","w",stdout)
#define REP(i,n) for (ll i = 1; i <= n; i++)
typedef long long ll;
typedef vector<vector<ll> > matrix;
#define MOD 1000000007;
int main(){
    int n,k;
    cin>>n>>k;
    int a[n];
    map<int,int>mp;
    for(int i = 0 ; i < n ; i++){
        cin>>a[i];
        if(abs(a[i])<=k){
            mp[a[i]]+=1;
            mp[-a[i]]+=0;
        }
    }
    int res=0;
    for(auto x: mp){
//        cout<<x.first<<" "<<x.second<<endl;
        if(x.first>=0)break;
        res+=abs(x.first)*abs(x.second-mp[-x.first]);
    }
//    cout<<res<<endl;
    int cnt=0;
    for(int i = k ; i>=1 ; i--){
        while(i<=res){
            cnt++;
            res=res-i;
            if(res<=0){
                cout<<cnt<<endl;
                return 0;
            }
        }
    }
    cout<<cnt<<endl;
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
#define MAXV 2147483647
#define MINV -2147483647
#define SYC ios_base::sync_with_stdio(0); cin.tie(0)
#define FR freopen("/Users/naveen/Documents/online_code/input.txt","r",stdin)
#define FW freopen("/Users/naveen/Documents/online_code/output.txt","w",stdout)
#define REP(i,n) for (ll i = 1; i <= n; i++)
typedef long long ll;
typedef vector<vector<ll> > matrix;
#define MOD 1000000007;
int main(){
    int n,k;
    cin>>n>>k;
    int a[n];
    map<int,int>mp;
    for(int i = 0 ; i < n ; i++){
        cin>>a[i];
        if(abs(a[i])<=k){
            mp[a[i]]+=1;
            mp[-a[i]]+=0;
        }
    }
    int res=0;
    for(auto x: mp){
//        cout<<x.first<<" "<<x.second<<endl;
        if(x.first>=0)break;
        res+=abs(x.second-mp[-x.first]);
    }
    cout<<res<<endl;
    return 0;
}


#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <queue>

using namespace	std;

typedef long long ll ;

int main(){
	int n , x , a[1010] , sum = 0 ;
	cin >> n >> x ;
	for(int i = 0 ; i < n ; ++i){
		cin >> a[i];
		sum += a[i];
	}
	if(sum == 0){
		cout << 0 << endl;
	}else if(sum > 0){
		if(sum % x == 0){
			printf("%d\n" ,sum/x );
		}else{
			printf("%d\n",(sum/x)+1 );
		}
	}else{
		if(sum % x == 0){
			printf("%d\n" ,-sum/x );
		}else{
			printf("%d\n",(-sum/x)+1 );
		}
	}
}


#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <queue>

using namespace	std;

typedef long long ll ;

int main(){
	int n , x , a[1010] , sum = 0 ;
	cin >> n >> x ;
	for(int i = 0 ; i < n ; ++i){
		cin >> a[i];
		sum += a[i];
	}
	if(sum == 0){
		cout << 0 << endl;
	}else if(sum < 0){
		cout << 1 << endl;
	}else{
		if(sum % x == 0){
			printf("%d\n" ,sum/x );
		}else{
			printf("%d\n",sum/x+1 );
		}
	}
}


#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <queue>

using namespace	std;

typedef long long ll ;

int main(){
	int n , x , a[1010] , sum = 0 ;
	cin >> n >> x ;
	for(int i = 0 ; i < n ; ++i){
		cin >> a[i];
		sum += a[i];
	}
	if(sum == 0){
		cout << 0 << endl;
	}else if(sum > 0){
		cout << 1 << endl;
	}else{
		if(sum % x == 0){
			printf("%d\n" ,-sum/x );
		}else{
			printf("%d\n",(-sum/x)+1 );
		}
	}
}


#include <iostream>
#include <algorithm>
#include <string>
#include <map>
#include <vector>
#include <queue>

using namespace	std;

typedef long long ll ;

int main(){
	int n , x , a[1010] , sum = 0 ;
	cin >> n >> x ;
	for(int i = 0 ; i < n ; ++i){
		cin >> a[i];
		sum += a[i];
	}
	if(sum == 0){
		cout << 0 << endl;
	}else if(sum > 0){
		cout << 1 << endl;
	}else{
		if(sum % x == 0){
			printf("%d\n" ,sum/x );
		}else{
			printf("%d\n",(sum/x)+1 );
		}
	}
}


/*
	Problema : C. Vladik and fractions
	Manuel Yafte Gallegos Lopez --
	19/09/2018
*/

#include <iostream>
#include <math.h>
#include <stdio.h>

using namespace std;

int fun_entero(double fraccion, double entero){
	int flag = 1;
	entero++;
	while(flag){
		if((1.0/entero) < fraccion){
			flag = 0;
			return entero;
		} else {
			entero++;
			if(entero > pow(10.0,9.0)){
				return 0;
			}
		}
	}
}

double getDenominador(double numero){
	return (1.0/numero);
}

int main(){

	long double fracc_fija, resto,x, y, z;
	long int n;
	//cout << "Ingresa n: ";
	cin >> n;
	if(n==0){
		cout << -1;
		return 0;
	}
	if(n%2==0){
		fracc_fija = 1.0/(n/2.0);
	} else{
		fracc_fija = 2.0/n;
	}
	x = fun_entero(fracc_fija,(getDenominador(fracc_fija))); //	cout << "x seria esto: " << x << endl;
	resto = fracc_fija-(1.0/x); //cout << "resto es : " << resto << endl;
	y = fun_entero(resto,getDenominador(resto)); //cout << "y seria esto : " << y << endl;
	z = getDenominador((fracc_fija-1.0/x-1.0/y)); //cout << "z seria esto : " << z << endl;
	//cout << z << endl;

	//cout << fixed << z << endl;
	//printf("%lf\n",z);

	cout << x << " " << y << " " ; cout.precision(0); cout<< fixed << z << endl;
	if(x==0||y==0||z==0){
		cout<<-1;
		return 0;
	}

	/*
	if(x!=y&&y!=z){
		cout << x << " " << y << " " ; cout.precision(0); cout<< fixed << z << endl;
	}else{
		cout <<  -1;
	}*/
	//imprimir

	return 0;

}


/*
	Problema : C. Vladik and fractions
	Manuel Yafte Gallegos Lopez
	19/09/2018
*/

#include <iostream>
#include <math.h>
#include <stdio.h>

using namespace std;

int fun_entero(double fraccion, double entero){
	int flag = 1;
	entero++;
	while(flag){
		if((1.0/entero) < fraccion){
			flag = 0;
			return entero;
		} else {
			entero++;
			if(entero > pow(10.0,9.0)){
				return 0;
			}
		}
	}
}

double getDenominador(double numero){
	return (1.0/numero);
}

int main(){

	long double fracc_fija, resto,x, y, z;
	long int n;
	//cout << "Ingresa n: ";
	cin >> n;
	if(n==0){
		cout << -1;
		return 0;
	}
	if(n%2==0){
		fracc_fija = 1.0/(n/2.0);
	} else{
		fracc_fija = 2.0/n;
	}
	x = fun_entero(fracc_fija,(getDenominador(fracc_fija))); //	cout << "x seria esto: " << x << endl;
	resto = fracc_fija-(1.0/x); //cout << "resto es : " << resto << endl;
	y = fun_entero(resto,getDenominador(resto)); //cout << "y seria esto : " << y << endl;
	z = getDenominador((fracc_fija-1.0/x-1.0/y)); //cout << "z seria esto : " << z << endl;
	//cout << z << endl;
	cout.precision(0);
	//cout << fixed << z << endl;
	//printf("%lf\n",z);

	if(x==0||y==0||z==0){
		cout<<-1;
		return 0;
	}

	if(x!=y&&y!=z){
		cout << x << " " << y << " " ; cout << fixed << z << endl;
	}else{
		cout <<  -1;
	}

	return 0;

}


#include <iostream>
#include <string>

using namespace std;

int main(){
  long long n;
  cin>>n;
  if(n==1||n*(n+1)){
    cout<<-1;
    return 0;
  }
  cout<<n<<n+1<<(n+1)*n;
  return 0;
}


#include <iostream>
#include <string>

using namespace std;

int main(){
  long long n;
  cin>>n;
  if(n==1||n*(n+1)>1000000){
    cout<<-1;
    return 0;
  }
  cout<<n<<" "<<(n+1)<<" "<<((n+1)*n);
  return 0;
}


#include <iostream>
#include <string>

using namespace std;

int main(){
  long long n;
  cin>>n;
  if(n==1||n*(n+1)>1000000){
    cout<<-1;
    return 0;
  }
  cout<<n<<n+1<<(n+1)*n;
  return 0;
}


#include <iostream>
#include <string>

using namespace std;

int main(){
  long long n;
  cin>>n;
  cout<<n*(n+1)<<endl;
  if(n==1||n*(n+1)>1000000000){
    cout<<-1;
    return 0;
  }
  cout<<n<<" "<<(n+1)<<" "<<((n+1)*n);
  return 0;
}


#include <iostream>
#include <string>

using namespace std;

int main(){
  long long n;
  cin>>n;
  // cout<<n*(n+1)<<endl;
  if(n==1||n*(n+1)>1000000000){
    cout<<-1;
    return 0;
  }
  cout<<n<<" "<<(n+1)<<" "<<((n+1)*n);
  return 0;
}


#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pll;
typedef string str;
typedef pair<ll,ll> pll;
typedef vector<pll> vpll;
#define all(x) x.begin(),x.end()
#define forn(i,n) for(lli i=0;i<n;i++)
#define mod 1000000007
#define pb push_back
#define sorts(v) sort(v.begin(), v.end())
#define sortsg(v) sort(v.begin(), v.end(),greater <int> ())
#define mp make_pair
#define deb(x) cerr << #x << " = " << x << endl;
int c[1000];
int main()
{
  #ifndef ONLINE_JUDGE
      freopen("inp.txt", "r" , stdin);
      freopen("outp.txt", "w", stdout);
    #endif

  ll n,j=2;
  cin>>n;
  ll num=2,tmp;
  for(j=2;n*j<pow(10,9);j++)
      if((4*j*j+1-4*j-4*n*j)>=0){
      double tmp=n*j;
      double t=2*j-1;
      ll d=t*t-4*tmp;
      if(d>=0)
      {
          double d1,d2;
          d1=(t+sqrt(d))/2;
          d2=(t-sqrt(d))/2;
          if(floorf(d1)==d1&&floorf(d2)==d2&&d1!=n*j&&d2!=n*j)
            {cout<<(ll)d1<<' '<<(ll)d2<<' '<<n*j<<endl;
               return 0;}

      }}

cout<<-1; return 0;

}


#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pll;
typedef string str;
typedef pair<ll,ll> pll;
typedef vector<pll> vpll;
#define all(x) x.begin(),x.end()
#define forn(i,n) for(lli i=0;i<n;i++)
#define mod 1000000007
#define pb push_back
#define sorts(v) sort(v.begin(), v.end())
#define sortsg(v) sort(v.begin(), v.end(),greater <int> ())
#define mp make_pair
#define deb(x) cerr << #x << " = " << x << endl;
int c[1000];
int main()
{
  #ifndef ONLINE_JUDGE
      freopen("inp.txt", "r" , stdin);
      freopen("outp.txt", "w", stdout);
    #endif

  ll n,j=2;
  cin>>n;
  ll num=2,tmp;
  if(n==1)
  {
    cout<<-1;
    return 0;
  }
  for(j=2;n*j<pow(10,9);j++)
      if((4*j*j+1-4*j-4*n*j)>=0){
      double tmp=n*j;
      double t=2*j-1;
      ll d=t*t-4*tmp;
      if(d>=0)
      {
          double d1,d2;
          d1=(t+sqrt(d))/2;
          d2=(t-sqrt(d))/2;
          if(floorf(d1)==d1&&floorf(d2)==d2&&d1!=n*j&&d2!=n*j)
            {cout<<(ll)d1<<' '<<(ll)d2<<' '<<n*j<<endl;
               return 0;}

      }}

cout<<-1; return 0;

}


#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pll;
typedef string str;
typedef pair<ll,ll> pll;
typedef vector<pll> vpll;
#define all(x) x.begin(),x.end()
#define forn(i,n) for(lli i=0;i<n;i++)
#define mod 1000000007
#define pb push_back
#define sorts(v) sort(v.begin(), v.end())
#define sortsg(v) sort(v.begin(), v.end(),greater <int> ())
#define mp make_pair
#define deb(x) cerr << #x << " = " << x << endl;
int c[1000];
int main()
{
  #ifndef ONLINE_JUDGE
      freopen("inp.txt", "r" , stdin);
      freopen("outp.txt", "w", stdout);
    #endif

  ll n,j=2;
  cin>>n;
  ll num=2,tmp;
  for(j=2;n*j<pow(10,9)&&n!=1;j++)
      if((4*j*j+1-4*j-4*n*j)>=0){
      double tmp=n*j;
      double t=num*j-1;
      ll d=t*t-4*tmp;
      if(n%2==0)
        cout<<-1;return 0;
      if(d>=0)
      {
          double d1,d2;
          d1=(t+sqrt(d))/2;
          d2=(t-sqrt(d))/2;
          if(floorf(d1)==d1&&floorf(d2)==d2&&d1!=j&&d2!=j)
            {cout<<(ll)d1<<' '<<(ll)d2<<' '<<n*j<<endl;
               return 0;}

      }}

cout<<-1; return 0;

}


#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pll;
typedef string str;
typedef pair<ll,ll> pll;
typedef vector<pll> vpll;
#define all(x) x.begin(),x.end()
#define forn(i,n) for(lli i=0;i<n;i++)
#define mod 1000000007
#define pb push_back
#define sorts(v) sort(v.begin(), v.end())
#define sortsg(v) sort(v.begin(), v.end(),greater <int> ())
#define mp make_pair
#define deb(x) cerr << #x << " = " << x << endl;
int c[1000];
int main()
{
  #ifndef ONLINE_JUDGE
      freopen("inp.txt", "r" , stdin);
      freopen("outp.txt", "w", stdout);
    #endif

  ll n,j=2;
  cin>>n;
  ll num=2,tmp;
  for(j=2;n*j<pow(10,9);j++)
      if((4*j*j+1-4*j-4*n*j)>=0){
      double tmp=n*j;
      double t=num*j-1;
      ll d=t*t-4*tmp;
      if(d>=0)
      {
          double d1,d2;
          d1=(t+sqrt(d))/2;
          d2=(t-sqrt(d))/2;
          if(floorf(d1)==d1&&floorf(d2)==d2&&d1!=j&&d2!=j)
            {cout<<(ll)d1<<' '<<(ll)d2<<' '<<n*j<<endl;
               return 0;}

      }}

cout<<-1; return 0;

}


#include<bits/stdc++.h>
using namespace std;
typedef long long int ll;
typedef vector<ll> vi;
typedef pair<ll, ll> pll;
typedef string str;
typedef pair<ll,ll> pll;
typedef vector<pll> vpll;
#define all(x) x.begin(),x.end()
#define forn(i,n) for(lli i=0;i<n;i++)
#define mod 1000000007
#define pb push_back
#define sorts(v) sort(v.begin(), v.end())
#define sortsg(v) sort(v.begin(), v.end(),greater <int> ())
#define mp make_pair
#define deb(x) cerr << #x << " = " << x << endl;
int c[1000];
int main()
{
  #ifndef ONLINE_JUDGE
      freopen("inp.txt", "r" , stdin);
      freopen("outp.txt", "w", stdout);
    #endif

  ll n,j=2;
  cin>>n;
  ll num=2,tmp;
  for(j=2;n*j<pow(10,9);j++)
      if((4*j*j+1-4*j-4*n*j)>=0){
      double tmp=n*j;
      double t=num*j-1;
      ll d=t*t-4*tmp;
      if(n%2==0)
        {cout<<-1;return 0;}
      if(d>=0)
      {
          double d1,d2;
          d1=(t+sqrt(d))/2;
          d2=(t-sqrt(d))/2;
          if(floorf(d1)==d1&&floorf(d2)==d2&&d1!=j&&d2!=j)
            {cout<<(ll)d1<<' '<<(ll)d2<<' '<<n*j<<endl;
               return 0;}

      }}

cout<<-1; return 0;

}


#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    cout << n << " " << n+1 << " " << n*(n+1) << "\n";
    return 0;
}


#include<bits/stdc++.h>
using namespace std;
int main(){
    long long int n;
    cin >> n;
    // 2xyz/(xy + yz + zx) = n
    for(long long int x = n; x >= 1; x--){
        for(long long int y = 1; y <= n*n; y++){
           // 2xyz/(xy + yz + zx) = n
           if((2*x*y - n*y - n*x) > 0LL && (n*x*y)%(2*x*y - n*y - n*x) == 0){
            long long int z = (long long int)(n*x*y)/(2*x*y - n*y - n*x);
            if(z >= (long long int)1e9){
                continue;
            }
            cout << x << " " << y << " " << z << "\n";
            return 0;
           }

        }
    }
    cout << "-1\n";
    return 0;
}
// 2/n - 1/x - 1/y = 1/z
// (2xy - ny - nx)/(nxy) = 1/z
// z = nxy/(2xy - ny - nx)
// 28 - 6 - 21


#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    // 2xyz/(xy + yz + zx) = n
    for(int x = 1; x <= n; x++){
        for(int y = x + 1; y <= n*n; y++){
           // 2xyz/(xy + yz + zx) = n
           if((2*x*y - n*y - n*x) > 0 && (n*x*y)%(2*x*y - n*y - n*x) == 0){
            long long int z = (long long int)(n*x*y)/(2*x*y - n*y - n*x);
            cout << x << " " << y << " " << z << "\n";
            return 0;
           }

        }
    }
    cout << "-1\n";
    return 0;
}
// 2/n - 1/x - 1/y = 1/z
// (2xy - ny - nx)/(nxy) = 1/z
// z = nxy/(2xy - ny - nx)
// 28 - 6 - 21


#include<bits/stdc++.h>
using namespace std;
int main(){
    int n;
    cin >> n;
    if(n == 1){
        cout << "-1\n";
        return 0;
    }
    cout << n << " " << n+1 << " " << n*(n+1) << "\n";
    return 0;
}


#define __USE_MINGW_ANSI_STDIO 0

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair < int , int > ii;
typedef vector < ii > vii;
typedef vector < bool > vb;
typedef vector < int > vi;
typedef vector < ll > vll;
typedef vector < string > vs;
typedef vector < vll > matrix;

#define DF cerr
#ifdef SGD
#define D(...) DF << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define D(...) 404
#endif
#ifdef SGD
#define PERF cerr << "Case #" << (tt+1) << " " << 1.0 * (clock() - t1) / CLOCKS_PER_SEC << " ms" << endl;
#else
#define PERF
#endif

string to_string(string s) { return '"' + s + '"'; }
string to_string(char c) { return '\'' + string(1,c) + '\''; }
string to_string(const char* s) { return to_string((string) s); }
string to_string(bool b) { return (b ? "true" : "false"); }
template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; }
template <typename A> string to_string(A v) { bool first=true; string res="{"; for (const auto &x : v) { if (!first) res+=", "; first=false; res+=to_string(x); } res+="}"; return res; }
void debug_out() { DF << endl; }
template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { DF << " " << to_string(H); debug_out(T...); }

#define sz(a) int((a).size())
#define pb push_back
#define F first
#define S second
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define tr(con,it) for (__typeof((con).begin()) it = con.begin(); it != con.end(); it++)
#define wl(x) (cout << (x) << endl)
#define w(x) (cout << (x))
#define r(x) (cin >> (x))
#define FOR(i,a,b) for (auto i = (a); i < (b); i++)
#define ROF(i,a,b) for (auto i = (b-1); i >= (a); i--)
#define mp(x,y) make_pair((x),(y))
#define reset(x,v) memset((x),(v),sizeof(x))
#define LSOne(S) (S & (-S))
#define MAXN 200005
#define MAXK 22
#define MDL 1000000007
#define INF 1ll<<60
#define EPS 1e-9
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define M_PI 3.14159265358979323846
#define V(vw,x,n,m) vector < vw > x(n,vw(m))

string to_str(const int &n){ostringstream stm; stm << n;return stm.str();}
string to_str(const ll &n){ostringstream stm; stm << n;return stm.str();}
template<class T> string tostring(T x, int len = 0) {stringstream ss; ss << x; string r = ss.str(); if(sz(r) < len) r = string(len - sz(r), '0') + r; return r;}
template<class T> void convert(string x, T& r) {stringstream ss(x); ss >> r;}
ll powmod(ll a,ll b) {ll res=1;a%=MDL;for(;b;b>>=1){if(b&1)res=res*a%MDL;a=a*a%MDL;}return res;}
ll modinv(ll a) { return powmod(a, MDL-2); }
ll modinv(ll a,ll m) { return powmod(a, m-2); }
ll nCkMp(ll n, ll k) { ll numerator = 1,denominator = 1;for (int i=0; i<k; i++) numerator = (numerator * (n-i) ) % MDL;for (int i=1; i<=k; i++) denominator = (denominator * i) % MDL;return (numerator*modinv(denominator)) % MDL; }
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(ll a,ll b) {return a*(b/gcd(a,b));}
int TT=1,tt;
clock_t t1;
// s.resize(unique(all(s))-s.begin());

void solve() {t1=clock();
int n;
ll p,q,e;

 r(n);
 FOR(i,1,10000) FOR(j,i+1,10001)
 {
  p=1ll*n*i*j;
  q=2ll*i*j-n*(i+j);
  if (q>0 && p%q==0) { e=p/q; if (e!=i && e!=j) { cout << i << " " << j << " " << e << endl; return; } }
 }
 wl(-1);

PERF}

int main() {IO
//r(TT);
 for(tt=0;tt<TT;tt++) solve();
 return 0;
}


#define __USE_MINGW_ANSI_STDIO 0

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair < int , int > ii;
typedef vector < ii > vii;
typedef vector < bool > vb;
typedef vector < int > vi;
typedef vector < ll > vll;
typedef vector < string > vs;
typedef vector < vll > matrix;

#define DF cerr
#ifdef SGD
#define D(...) DF << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define D(...) 404
#endif
#ifdef SGD
#define PERF cerr << "Case #" << (tt+1) << " " << 1.0 * (clock() - t1) / CLOCKS_PER_SEC << " ms" << endl;
#else
#define PERF
#endif

string to_string(string s) { return '"' + s + '"'; }
string to_string(char c) { return '\'' + string(1,c) + '\''; }
string to_string(const char* s) { return to_string((string) s); }
string to_string(bool b) { return (b ? "true" : "false"); }
template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; }
template <typename A> string to_string(A v) { bool first=true; string res="{"; for (const auto &x : v) { if (!first) res+=", "; first=false; res+=to_string(x); } res+="}"; return res; }
void debug_out() { DF << endl; }
template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { DF << " " << to_string(H); debug_out(T...); }

#define sz(a) int((a).size())
#define pb push_back
#define F first
#define S second
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define tr(con,it) for (__typeof((con).begin()) it = con.begin(); it != con.end(); it++)
#define wl(x) (cout << (x) << endl)
#define w(x) (cout << (x))
#define r(x) (cin >> (x))
#define FOR(i,a,b) for (auto i = (a); i < (b); i++)
#define ROF(i,a,b) for (auto i = (b-1); i >= (a); i--)
#define mp(x,y) make_pair((x),(y))
#define reset(x,v) memset((x),(v),sizeof(x))
#define LSOne(S) (S & (-S))
#define MAXN 200005
#define MAXK 22
#define MDL 1000000007
#define INF 1ll<<60
#define EPS 1e-9
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define M_PI 3.14159265358979323846
#define V(vw,x,n,m) vector < vw > x(n,vw(m))

string to_str(const int &n){ostringstream stm; stm << n;return stm.str();}
string to_str(const ll &n){ostringstream stm; stm << n;return stm.str();}
template<class T> string tostring(T x, int len = 0) {stringstream ss; ss << x; string r = ss.str(); if(sz(r) < len) r = string(len - sz(r), '0') + r; return r;}
template<class T> void convert(string x, T& r) {stringstream ss(x); ss >> r;}
ll powmod(ll a,ll b) {ll res=1;a%=MDL;for(;b;b>>=1){if(b&1)res=res*a%MDL;a=a*a%MDL;}return res;}
ll modinv(ll a) { return powmod(a, MDL-2); }
ll modinv(ll a,ll m) { return powmod(a, m-2); }
ll nCkMp(ll n, ll k) { ll numerator = 1,denominator = 1;for (int i=0; i<k; i++) numerator = (numerator * (n-i) ) % MDL;for (int i=1; i<=k; i++) denominator = (denominator * i) % MDL;return (numerator*modinv(denominator)) % MDL; }
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(ll a,ll b) {return a*(b/gcd(a,b));}
int TT=1,tt;
clock_t t1;
// s.resize(unique(all(s))-s.begin());

void solve() {t1=clock();
int n;
ll p,q,e;

 r(n);
 FOR(i,1,10000) FOR(j,i+1,10001)
 {
  p=1ll*n*i*j;
  q=2ll*i*j-n*(i+j);
  if (q>0 && p%q==0) { e=p/q; if (e!=i && e!=j && e<=1000000000) { cout << i << " " << j << " " << e << endl; return; } }
 }
 wl(-1);

PERF}

int main() {IO
//r(TT);
 for(tt=0;tt<TT;tt++) solve();
 return 0;
}


#define __USE_MINGW_ANSI_STDIO 0

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair < int , int > ii;
typedef vector < ii > vii;
typedef vector < bool > vb;
typedef vector < int > vi;
typedef vector < ll > vll;
typedef vector < string > vs;
typedef vector < vll > matrix;

#define DF cerr
#ifdef SGD
#define D(...) DF << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define D(...) 404
#endif
#ifdef SGD
#define PERF cerr << "Case #" << (tt+1) << " " << 1.0 * (clock() - t1) / CLOCKS_PER_SEC << " ms" << endl;
#else
#define PERF
#endif

string to_string(string s) { return '"' + s + '"'; }
string to_string(char c) { return '\'' + string(1,c) + '\''; }
string to_string(const char* s) { return to_string((string) s); }
string to_string(bool b) { return (b ? "true" : "false"); }
template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; }
template <typename A> string to_string(A v) { bool first=true; string res="{"; for (const auto &x : v) { if (!first) res+=", "; first=false; res+=to_string(x); } res+="}"; return res; }
void debug_out() { DF << endl; }
template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { DF << " " << to_string(H); debug_out(T...); }

#define sz(a) int((a).size())
#define pb push_back
#define F first
#define S second
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define tr(con,it) for (__typeof((con).begin()) it = con.begin(); it != con.end(); it++)
#define wl(x) (cout << (x) << endl)
#define w(x) (cout << (x))
#define r(x) (cin >> (x))
#define FOR(i,a,b) for (auto i = (a); i < (b); i++)
#define ROF(i,a,b) for (auto i = (b-1); i >= (a); i--)
#define mp(x,y) make_pair((x),(y))
#define reset(x,v) memset((x),(v),sizeof(x))
#define LSOne(S) (S & (-S))
#define MAXN 200005
#define MAXK 22
#define MDL 1000000007
#define INF 1ll<<60
#define EPS 1e-9
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define M_PI 3.14159265358979323846
#define V(vw,x,n,m) vector < vw > x(n,vw(m))

string to_str(const int &n){ostringstream stm; stm << n;return stm.str();}
string to_str(const ll &n){ostringstream stm; stm << n;return stm.str();}
template<class T> string tostring(T x, int len = 0) {stringstream ss; ss << x; string r = ss.str(); if(sz(r) < len) r = string(len - sz(r), '0') + r; return r;}
template<class T> void convert(string x, T& r) {stringstream ss(x); ss >> r;}
ll powmod(ll a,ll b) {ll res=1;a%=MDL;for(;b;b>>=1){if(b&1)res=res*a%MDL;a=a*a%MDL;}return res;}
ll modinv(ll a) { return powmod(a, MDL-2); }
ll modinv(ll a,ll m) { return powmod(a, m-2); }
ll nCkMp(ll n, ll k) { ll numerator = 1,denominator = 1;for (int i=0; i<k; i++) numerator = (numerator * (n-i) ) % MDL;for (int i=1; i<=k; i++) denominator = (denominator * i) % MDL;return (numerator*modinv(denominator)) % MDL; }
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(ll a,ll b) {return a*(b/gcd(a,b));}
int TT=1,tt;
clock_t t1;
// s.resize(unique(all(s))-s.begin());

void solve() {t1=clock();
int n;
ll p,q,e;

 r(n);
 FOR(i,1,10001) FOR(j,1,10001)
 {
  if (i==j) continue;
  p=1ll*n*i*j;
  q=2ll*i*j-n*(i+j);
  if (q>0 && p%q==0) { e=p/q; if (e!=i && e!=j) { cout << i << " " << j << " " << e << endl; return; } }
 }
 wl(-1);

PERF}

int main() {IO
//r(TT);
 for(tt=0;tt<TT;tt++) solve();
 return 0;
}


#define __USE_MINGW_ANSI_STDIO 0

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair < int , int > ii;
typedef vector < ii > vii;
typedef vector < bool > vb;
typedef vector < int > vi;
typedef vector < ll > vll;
typedef vector < string > vs;
typedef vector < vll > matrix;

#define DF cerr
#ifdef SGD
#define D(...) DF << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define D(...) 404
#endif
#ifdef SGD
#define PERF cerr << "Case #" << (tt+1) << " " << 1.0 * (clock() - t1) / CLOCKS_PER_SEC << " ms" << endl;
#else
#define PERF
#endif

string to_string(string s) { return '"' + s + '"'; }
string to_string(char c) { return '\'' + string(1,c) + '\''; }
string to_string(const char* s) { return to_string((string) s); }
string to_string(bool b) { return (b ? "true" : "false"); }
template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; }
template <typename A> string to_string(A v) { bool first=true; string res="{"; for (const auto &x : v) { if (!first) res+=", "; first=false; res+=to_string(x); } res+="}"; return res; }
void debug_out() { DF << endl; }
template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { DF << " " << to_string(H); debug_out(T...); }

#define sz(a) int((a).size())
#define pb push_back
#define F first
#define S second
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define tr(con,it) for (__typeof((con).begin()) it = con.begin(); it != con.end(); it++)
#define wl(x) (cout << (x) << endl)
#define w(x) (cout << (x))
#define r(x) (cin >> (x))
#define FOR(i,a,b) for (auto i = (a); i < (b); i++)
#define ROF(i,a,b) for (auto i = (b-1); i >= (a); i--)
#define mp(x,y) make_pair((x),(y))
#define reset(x,v) memset((x),(v),sizeof(x))
#define LSOne(S) (S & (-S))
#define MAXN 200005
#define MAXK 22
#define MDL 1000000007
#define INF 1ll<<60
#define EPS 1e-9
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define M_PI 3.14159265358979323846
#define V(vw,x,n,m) vector < vw > x(n,vw(m))

string to_str(const int &n){ostringstream stm; stm << n;return stm.str();}
string to_str(const ll &n){ostringstream stm; stm << n;return stm.str();}
template<class T> string tostring(T x, int len = 0) {stringstream ss; ss << x; string r = ss.str(); if(sz(r) < len) r = string(len - sz(r), '0') + r; return r;}
template<class T> void convert(string x, T& r) {stringstream ss(x); ss >> r;}
ll powmod(ll a,ll b) {ll res=1;a%=MDL;for(;b;b>>=1){if(b&1)res=res*a%MDL;a=a*a%MDL;}return res;}
ll modinv(ll a) { return powmod(a, MDL-2); }
ll modinv(ll a,ll m) { return powmod(a, m-2); }
ll nCkMp(ll n, ll k) { ll numerator = 1,denominator = 1;for (int i=0; i<k; i++) numerator = (numerator * (n-i) ) % MDL;for (int i=1; i<=k; i++) denominator = (denominator * i) % MDL;return (numerator*modinv(denominator)) % MDL; }
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(ll a,ll b) {return a*(b/gcd(a,b));}
int TT=1,tt;
clock_t t1;
// s.resize(unique(all(s))-s.begin());

void solve() {t1=clock();
int n;
ll p,q,e;

 r(n);
 FOR(i,1,10005) FOR(j,i+1,10005)
 {
  p=1ll*n*i*j;
  q=2ll*i*j-n*(i+j);
  if (q>0 && p%q==0) { e=p/q; if (e!=i && e!=j && e<=1000000000) { cout << i << " " << j << " " << e << endl; return; } }
 }
 wl(-1);

PERF}

int main() {IO
//r(TT);
 for(tt=0;tt<TT;tt++) solve();
 return 0;
}


#define __USE_MINGW_ANSI_STDIO 0

#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef pair < int , int > ii;
typedef vector < ii > vii;
typedef vector < bool > vb;
typedef vector < int > vi;
typedef vector < ll > vll;
typedef vector < string > vs;
typedef vector < vll > matrix;

#define DF cerr
#ifdef SGD
#define D(...) DF << "[" << #__VA_ARGS__ << "]:", debug_out(__VA_ARGS__)
#else
#define D(...) 404
#endif
#ifdef SGD
#define PERF cerr << "Case #" << (tt+1) << " " << 1.0 * (clock() - t1) / CLOCKS_PER_SEC << " ms" << endl;
#else
#define PERF
#endif

string to_string(string s) { return '"' + s + '"'; }
string to_string(char c) { return '\'' + string(1,c) + '\''; }
string to_string(const char* s) { return to_string((string) s); }
string to_string(bool b) { return (b ? "true" : "false"); }
template <typename A, typename B> string to_string(pair<A, B> p) { return "(" + to_string(p.first) + ", " + to_string(p.second) + ")"; }
template <typename A> string to_string(A v) { bool first=true; string res="{"; for (const auto &x : v) { if (!first) res+=", "; first=false; res+=to_string(x); } res+="}"; return res; }
void debug_out() { DF << endl; }
template <typename Head, typename... Tail> void debug_out(Head H, Tail... T) { DF << " " << to_string(H); debug_out(T...); }

#define sz(a) int((a).size())
#define pb push_back
#define F first
#define S second
#define all(c) (c).begin(),(c).end()
#define rall(c) (c).rbegin(),(c).rend()
#define tr(con,it) for (__typeof((con).begin()) it = con.begin(); it != con.end(); it++)
#define wl(x) (cout << (x) << endl)
#define w(x) (cout << (x))
#define r(x) (cin >> (x))
#define FOR(i,a,b) for (auto i = (a); i < (b); i++)
#define ROF(i,a,b) for (auto i = (b-1); i >= (a); i--)
#define mp(x,y) make_pair((x),(y))
#define reset(x,v) memset((x),(v),sizeof(x))
#define LSOne(S) (S & (-S))
#define MAXN 200005
#define MAXK 22
#define MDL 1000000007
#define INF 1ll<<60
#define EPS 1e-9
#define IO ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define M_PI 3.14159265358979323846
#define V(vw,x,n,m) vector < vw > x(n,vw(m))

string to_str(const int &n){ostringstream stm; stm << n;return stm.str();}
string to_str(const ll &n){ostringstream stm; stm << n;return stm.str();}
template<class T> string tostring(T x, int len = 0) {stringstream ss; ss << x; string r = ss.str(); if(sz(r) < len) r = string(len - sz(r), '0') + r; return r;}
template<class T> void convert(string x, T& r) {stringstream ss(x); ss >> r;}
ll powmod(ll a,ll b) {ll res=1;a%=MDL;for(;b;b>>=1){if(b&1)res=res*a%MDL;a=a*a%MDL;}return res;}
ll modinv(ll a) { return powmod(a, MDL-2); }
ll modinv(ll a,ll m) { return powmod(a, m-2); }
ll nCkMp(ll n, ll k) { ll numerator = 1,denominator = 1;for (int i=0; i<k; i++) numerator = (numerator * (n-i) ) % MDL;for (int i=1; i<=k; i++) denominator = (denominator * i) % MDL;return (numerator*modinv(denominator)) % MDL; }
ll gcd(ll a,ll b) {return b==0?a:gcd(b,a%b);}
ll lcm(ll a,ll b) {return a*(b/gcd(a,b));}
int TT=1,tt;
clock_t t1;
// s.resize(unique(all(s))-s.begin());

void solve() {t1=clock();
int n;
ll p,q;

 r(n);
 FOR(i,1,10001) FOR(j,1,10001)
 {
  p=1ll*n*i*j;
  q=2ll*i*j-n*(i+j);
  if (q>0 && p%q==0) { cout << i << " " << j << " " << p/q << endl; return; }
 }
 wl(-1);

PERF}

int main() {IO
//r(TT);
 for(tt=0;tt<TT;tt++) solve();
 return 0;
}


#include <bits/stdc++.h>

#define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i)
#define REP(i, n) FOR(i, 0, n)
#define all(a) a.begin(),a.end()
#define pb push_back
#define LSOne(S) (S & (-S))

typedef unsigned long long llu;
typedef long long ll;
typedef long double ld;

const int INF = 0x3f3f3f3f;
const double EPS = 1e-9;
using namespace std;

int main(){
	ll n;
	cin >> n;
	if(n == 1) cout << "-1\n";
	else printf("%lld %lld %lld\n", n, n+1LL, n*(n+1LL));
	return 0;
}


#include <bits/stdc++.h>

#define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i)
#define REP(i, n) FOR(i, 0, n)
#define all(a) a.begin(),a.end()
#define pb push_back
#define LSOne(S) (S & (-S))

typedef unsigned long long llu;
typedef long long ll;
typedef long double ld;

const int INF = 0x3f3f3f3f;
const double EPS = 1e-9;
using namespace std;

int main(){
	ll n;
	cin >> n;
	for(ll x = 1; x*x*x <= 1000000000; x++){
		for(ll y = x+1; x*y*y <= 1000000000; y++){
			if(((2*x*y)-(n*y)-(n*x)) != 0){
				if((n*x*y) % ((2*x*y)-(n*y)-(n*x)) == 0){
					ll z = (n*x*y) / ((2*x*y)-(n*y)-(n*x));
					if(z >= 1 && x != z && y != z){
						printf("%lld %lld %lld\n", x, y, z);
						return 0;
					}
				}
			}
		}
	}
	cout << "-1\n";
  return 0;
}


#include <bits/stdc++.h>

#define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i)
#define REP(i, n) FOR(i, 0, n)
#define all(a) a.begin(),a.end()
#define pb push_back
#define LSOne(S) (S & (-S))

typedef unsigned long long llu;
typedef long long ll;
typedef long double ld;

const int INF = 0x3f3f3f3f;
const double EPS = 1e-9;
using namespace std;

int main(){
	ll n;
	cin >> n;
	for(ll x = 1; x*x*x <= 1000000000; x++){
		for(ll y = x+1; x*y*y <= 1000000000; y++){
			if(((2*x*y)-(n*y)-(n*x)) != 0){
				if((n*x*y) % ((2*x*y)-(n*y)-(n*x)) == 0){
					ll z = (n*x*y) / ((2*x*y)-(n*y)-(n*x));
					if(z >= 1 && x != z && y != z && z <= 1000000000){
						printf("%lld %lld %lld\n", x, y, z);
						return 0;
					}
				}
			}
		}
	}
	cout << "-1\n";
  return 0;
}


#include <bits/stdc++.h>

#define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i)
#define REP(i, n) FOR(i, 0, n)
#define all(a) a.begin(),a.end()
#define pb push_back
#define LSOne(S) (S & (-S))

typedef unsigned long long llu;
typedef long long ll;
typedef long double ld;

const int INF = 0x3f3f3f3f;
const double EPS = 1e-9;
using namespace std;

int main(){
	int n;
	bool ok = true;
	cin >> n;
	for(int x = 1; x <= 15001 && ok; x++){
		for(int y = x+1; x*y <= 15001 &&  ok; y++){
			if(((2*x*y)-(n*y)-(n*x)) != 0){
				if((n*x*y) % ((2*x*y)-(n*y)-(n*x)) == 0){
					int z = (n*x*y) / ((2*x*y)-(n*y)-(n*x));
					if(z >= 1){
						printf("%d %d %d\n", x, y, z);
						return 0;
					}
				}
			}
		}
	}
	cout << "-1\n";
  return 0;
}


#include <bits/stdc++.h>

#define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i)
#define REP(i, n) FOR(i, 0, n)
#define all(a) a.begin(),a.end()
#define pb push_back
#define LSOne(S) (S & (-S))

typedef unsigned long long llu;
typedef long long ll;
typedef long double ld;

const int INF = 0x3f3f3f3f;
const double EPS = 1e-9;
using namespace std;

int main(){
	ll n;
	cin >> n;
	for(ll x = 1; x*x*x <= 1000000000; x++){
		for(ll y = x+1; x*y*y <= 1000000000; y++){
			if(((2*x*y)-(n*y)-(n*x)) != 0){
				if((n*x*y) % ((2*x*y)-(n*y)-(n*x)) == 0){
					ll z = (n*x*y) / ((2*x*y)-(n*y)-(n*x));
					if(z >= 1){
						printf("%lld %lld %lld\n", x, y, z);
						return 0;
					}
				}
			}
		}
	}
	cout << "-1\n";
  return 0;
}


#include <bits/stdc++.h>

#define FOR(i, a, n) for(int i = (int)(a); i < (int)(n); ++i)
#define REP(i, n) FOR(i, 0, n)
#define all(a) a.begin(),a.end()
#define pb push_back
#define LSOne(S) (S & (-S))

typedef unsigned long long llu;
typedef long long ll;
typedef long double ld;

const int INF = 0x3f3f3f3f;
const double EPS = 1e-9;
using namespace std;

int main(){
	int n;
	bool ok = true;
	cin >> n;
	for(int x = 1; x <= 15001 && ok; x++){
		for(int y = x+1; x*y <= 15001 &&  ok; y++){
			if(((2*x*y)-(n*y)-(n*x)) != 0){
				if((n*x*y) % ((2*x*y)-(n*y)-(n*x)) == 0){
					int z = (n*x*y) / ((2*x*y)-(n*y)-(n*x));
					if(z >= 1){
						printf("%d %d %d\n", x, y, z);
						return 0;
					}
				}
			}
		}
	}
  return 0;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
for(long long int x=((n)/2+1);x<=1000000000;x++){

for(long long int y=max(x+1,(long long int)ceil(((n*x+0.0)/(2*x-n))));y<=1000000000;y++){

long long int A=n*x*y;
long long int B=2*x*y-n*(x+y);
//cout<<x<<" "<<y<<" "<<A<<" "<<B<<endl;
if(B==0) continue;//{cout<<-1;return 0;}
if(A%B==0){
//cout<<x<<" "<<y<<endl;

cout<<x<<" "<<y<<" "<<A/B<<"\n";
return 0;
}

}

}
cout<<-1;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
for(long long int x=((n)/2+1);x<=1000000000;x++){

for(long long int y=max(x+1,(long long int)ceil(((n*x+0.0)/(2*x-n))));y<=1000000000;y++){

long long int A=n*x*y;
long long int B=2*x*y-n*(x+y);
//cout<<x<<" "<<y<<" "<<A<<" "<<B<<endl;
if(B==0) continue;//{cout<<-1;return 0;}
if(A%B==0){
//cout<<x<<" "<<y<<endl;
if(A/B==x||A/B==y) continue;
cout<<x<<" "<<y<<" "<<A/B<<"\n";
return 0;
}

}

}
cout<<-1;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
for(long long int x=((n)/2+1);x<=1000000000;x++){

for(long long int y=max(x+1,(long long int)ceil(((n*x+0.0)/(2*x-n))));y<=1000000000;y++){

long long int A=n*x*y;
long long int B=2*x*y-n*(x+y);
//cout<<x<<" "<<y<<" "<<A<<" "<<B<<endl;
if(B==0) continue;//{cout<<-1;return 0;}
if(A%B==0){
//cout<<x<<" "<<y<<endl;

if(A/B>1000000000||A/B==x||A/B==y) continue;
cout<<x<<" "<<y<<" "<<A/B<<"\n";
return 0;
}

}

}
cout<<-1;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
if(n==1) {cout<<-1;return 0;}
for(long long int x=max(((n)/2+1),1);x<=1000000000;x++){

for(long long int y=max(x+1,(long long int)ceil(((n*x+0.0)/(2*x-n))));y<=1000000000;y++){

long long int A=n*x*y;
long long int B=2*x*y-n*(x+y);
//cout<<x<<" "<<y<<" "<<A<<" "<<B<<endl;
if(B==0) continue;//{cout<<-1;return 0;}
if(A%B==0){
//cout<<x<<" "<<y<<endl;

if(A/B>1000000000||A/B==x||A/B==y) continue;
cout<<x<<" "<<y<<" "<<A/B<<"\n";
return 0;
}

}

}
cout<<-1;
}


#include<bits/stdc++.h>
using namespace std;

int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int n;
cin>>n;
for(long long int x=((n+1)/2);x<=1000000000;x++){

for(long long int y=max(x+1,(long long int)ceil(((n*x+0.0)/(2*x-n))));y<=1000000000;y++){

long long int A=n*x*y;
long long int B=2*x*y-n*(x+y);
//cout<<x<<" "<<y<<" "<<A<<" "<<B<<endl;
if(B==0) continue;
if(A%B==0){
//cout<<x<<" "<<y<<endl;

cout<<x<<" "<<y<<" "<<A/B<<"\n";
return 0;
}

}

}
cout<<-1;
}


# include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,int>
typedef long long ll;
int n;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>n;
    if(n==1) cout<<-1<<endl;
    else cout<<n<<" "<<n+1<<" "<<(n*(n+1))<<endl;
}


# include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,int>
typedef long long ll;
int n;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>n;
    cout<<n<<" "<<n+1<<" "<<(n*(n+1))<<endl;
}


# include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,int>
typedef long long ll;
int n;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>n;
    cout<<n<<" "<<n*2<<" "<<n*2<<endl;
}


# include <bits/stdc++.h>
using namespace std;
#define pb push_back
#define mp make_pair
#define fi first
#define se second
#define pii pair<int,int>
typedef long long ll;
int n;
int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);
    cin>>n;
    if(n==1) cout<<-1<<endl;
    cout<<n<<" "<<n+1<<" "<<(n*(n+1))<<endl;
}


#include <bits/stdc++.h>
using namespace std;
#define LL long long
bool isint (double n)
{
    LL c=n;
    if (c==n)return true;
    return false;
}
int main()
{
	double n; cin>>n;
	for (int i=2;i<=10000;i++)
    {
        if (1.0/i<2/n)
        {
            double x=(2/n)-(1.0/i),y=1.0/x;
            while(1)
            {
                y++;
                double m=x-1/y;
                double z=1/m;
                if (abs(floor(z)-z)<=1e-7)z=floor(z);
                if (y>1e9||z>1e9){cout<<-1;break;}
                if (isint(z))
                {
                    cout<<i<<" "<<fixed<<setprecision(0)<<y<<" "<<fixed<<setprecision(0)<<z;
                    break;
                }
            }
            break;
        }
    }
return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define LL long long
bool isint (double n)
{
    LL c=n;
    if (c==n)return true;
    return false;
}
int main()
{
	double n; cin>>n;
	for (int i=2;i<=10000;i++)
    {
        if (1.0/i<2/n)
        {
            double x=(2/n)-(1.0/i),y=1.0/x;
            while(1)
            {
                y++;
                double m=x-1/y;
                double z=1/m;
                if (abs(floor(z)-z)<=1e-7)z=floor(z);
                if (y>1e9||z>1e9){cout<<-1;return 0;}
                if (isint(z))
                {
                    cout<<i<<" "<<fixed<<setprecision(0)<<y<<" "<<fixed<<setprecision(0)<<z;
                    return 0;
                }
            }
            return 0;
        }
    }
return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define LL long long
bool isint (double n)
{
    LL c=n;
    if (c==n)return true;
    return false;
}
int main()
{
	double n; cin>>n;
	for (int i=2;i<=10000;i++)
    {
        if (1.0/i<2/n)
        {
            double x=(2/n)-(1.0/i),y=1.0/x;
            while(1)
            {
                y++;
                double m=x-1/y;
                double z=1/m;
                if (abs(floor(z)-z)<=1e-7)z=floor(z);
                if (isint(z))
                {
                    if (y<=1e9&&z<=1e9){
                    cout<<i<<" "<<fixed<<setprecision(0)<<y<<" "<<fixed<<setprecision(0)<<z;
                    break;}
                    else {cout<<-1;break;}
                }
            }
            break;
        }
    }
return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define LL long long
bool isint (double n)
{
    LL c=n;
    if (c==n)return true;
    return false;
}
int main()
{
	double n; cin>>n;
	for (int i=2;i<=10000;i++)
    {
        if (1.0/i<2/n)
        {
            double x=(2/n)-(1.0/i),y=1.0/x;
            while(1)
            {
                y++;
                double m=x-1/y;
                double z=1/m;
                if (abs(floor(z)-z)<=1e-7)z=floor(z);
                if (y>1e9||z>1e9){cout<<-1;return 0;}
                if (isint(z))
                {
                    cout<<i<<" "<<fixed<<setprecision(0)<<y<<" "<<fixed<<setprecision(0)<<z;
                    break;
                }
            }
            break;
        }
    }
return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define LL long long
int main()
{
	int n; cin>>n;
	if(n==1)cout<<-1;
	else cout<<n<<" "<<n+1<<" "<<n*(n+1);
return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 10000; i++) {
		for (int j = i + 1; j <= 10000; j++) {
			if (2ll * i * j - n * 1ll * i - n * 1ll * j > 0) {
				ll k = (n * 1ll * i * j) / (2ll * i * j - n * 1ll * i - n * 1ll * j);
				if (k > j * 1ll && k <= (ll)1e9 && 2ll * i * j * k == n * 1ll * (i * 1ll * j + j * 1ll * k + k * 1ll * i)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 13000; i++) {
		for (int j = i + 1; j <= 13000; j++) {
			if (2ll * i * j - n * 1ll * i - n * 1ll * j > 0) {
				ll k = (n * 1ll * i * j) / (2ll * i * j - n * 1ll * i - n * 1ll * j);
				if (k > 0ll && 2ll * i * j * k == n * 1ll * (i * 1ll * j + j * 1ll * k + k * 1ll * i)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 1000; i++) {
		for (int j = i + 1; j <= 1000; j++) {
			for (int k = j + 1; k <= 1000; k++) {
				if (2ll * i * j * k == n * 1ll * (i + j + k)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 13000; i++) {
		for (int j = i + 1; j <= 13000; j++) {
			if (2ll * i * j - n * 1ll * i - n * 1ll * j > 0) {
				ll k = (n * 1ll * i * j) / (2ll * i * j - n * 1ll * i - n * 1ll * j);
				if (k > 0ll && k <= (ll)1e9 && 2ll * i * j * k == n * 1ll * (i * 1ll * j + j * 1ll * k + k * 1ll * i)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 13000; i++) {
		for (int j = i + 1; j <= 13000; j++) {
			if (2ll * i * j - n * 1ll * i - n * 1ll * j > 0) {
				ll k = (n * 1ll * i * j) / (2ll * i * j - n * 1ll * i - n * 1ll * j);
				if (k > j * 1ll && k <= (ll)1e9 && 2ll * i * j * k == n * 1ll * (i * 1ll * j + j * 1ll * k + k * 1ll * i)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 1000; i++) {
		for (int j = i + 1; j <= 1000; j++) {
			for (int k = j + 1; k <= 1000; k++) {
				if (2ll * i * j * k == n * 1ll * (i * 1ll * j + j * 1ll * k + k * 1ll * i)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef long double ld;
typedef pair < ll, ll > pll;
typedef pair < int, ll > pil;
typedef pair < ll, int > pli;
typedef pair < int, int > pii;
typedef unsigned long long ull;

#define F first
#define S second
#define en end()
#define bg begin()
#define rev reverse
#define mp make_pair
#define pb push_back
#define um unordered_map
#define all(x) x.bg, x.en
#define sqr(x) ((x) * (x))
#define sz(x) (int)x.size()

const ld eps = (ld)1e-9;
const ll inf = (ll)1e18;
const ld pi = acos(-1.0);
const ll mod = (ll)1e9 + 7;

const int N = 100500;

int n;

int main() {
	//freopen(".in", "r", stdin);
	//freopen(".out", "w", stdout);

	//cin.tie(NULL);
	//cout.tie(NULL);
	//ios_base::sync_with_stdio(false);

	cin >> n;

	for (int i = 1; i <= 11000; i++) {
		for (int j = i + 1; j <= 11000; j++) {
			if (2ll * i * j - n * 1ll * i - n * 1ll * j > 0) {
				ll k = (n * 1ll * i * j) / (2ll * i * j - n * 1ll * i - n * 1ll * j);
				if (k > j * 1ll && k <= (ll)1e9 && 2ll * i * j * k == n * 1ll * (i * 1ll * j + j * 1ll * k + k * 1ll * i)) {
					cout << i << " " << j << " " << k;
					return 0;
				}
			}
		}
	}

	cout << -1;

	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (int X = n; X <= n + 1e4; X++) {
		for (int Y = X + 1; Y <= n + 1e4; Y++) {
			ll K = 2 * X * Y, aux = n * X * Y;
			if(aux % (K - (X * n) - (Y * n)) != 0 ) continue;
			ll Z = aux / (K - (X * n) - (Y * n));
			cout << X << ' ' << Y << ' ' << Z << endl;
			return 0;
		}
	}
	for (ll B = 2; B <= (int)1e5; B++) {
		if((2 * B) % n != 0) continue;
		ll l1 = ((2 * B) / n) - 1;
		for (ll i = 1; i * i <= B; i++) {
			if(B % i != 0) continue;
			ll K = B / i;
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, i, B / (l1 - K))) return 0;
			}
			K = B / (B / i);
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, B / i, B / (l1 - K))) return 0;
			}
		}
	}
	puts("-1");
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (int X = n; X <= n + 1e3; X++) {
		for (int Y = X + 1; Y <= n + 1e3; Y++) {
			ll K = 2 * X * Y, aux = n * X * Y;
			if(aux % (K - (X * n) - (Y * n)) != 0 ) continue;
			ll Z = aux / (K - (X * n) - (Y * n));
			cout << X << ' ' << Y << ' ' << Z << endl;
			return 0;
		}
	}
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (int X = n; X <= n + 1e4; X++) {
		for (int Y = X + 1; Y <= n + 1e4; Y++) {
			ll K = 2 * X * Y, aux = n * X * Y;
			if(aux % (K - (X * n) - (Y * n)) != 0 ) continue;
			ll Z = aux / (K - (X * n) - (Y * n));
			if(X == Y || X == Z || Y == Z) continue;
			cout << X << ' ' << Y << ' ' << Z << endl;
			return 0;
		}
	}
	for (ll B = 2; B <= (int)1e5; B++) {
		if((2 * B) % n != 0) continue;
		ll l1 = ((2 * B) / n) - 1;
		for (ll i = 1; i * i <= B; i++) {
			if(B % i != 0) continue;
			ll K = B / i;
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, i, B / (l1 - K))) return 0;
			}
			K = B / (B / i);
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, B / i, B / (l1 - K))) return 0;
			}
		}
	}
	puts("-1");
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (ll X = n; X <= n + 1e4; X++) {
		for (ll Y = X + 1; Y <= n + 1e4; Y++) {
			ll K = 2 * X * Y, aux = n * X * Y;
			if(aux % (K - (X * n) - (Y * n)) != 0 ) continue;
			ll Z = aux / (K - (X * n) - (Y * n));
			if(X == Y || X == Z || Y == Z) continue;
			cout << X << ' ' << Y << ' ' << Z << endl;
			return 0;
		}
	}
	for (ll B = 2; B <= (int)1e5; B++) {
		if((2 * B) % n != 0) continue;
		ll l1 = ((2 * B) / n) - 1;
		for (ll i = 1; i * i <= B; i++) {
			if(B % i != 0) continue;
			ll K = B / i;
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, i, B / (l1 - K))) return 0;
			}
			K = B / (B / i);
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, B / i, B / (l1 - K))) return 0;
			}
		}
	}
	puts("-1");
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (ll B = 2; B <= (int)1e5; B++) {
		if((2 * B) % n != 0) continue;
		ll l1 = ((2 * B) / n) - 1;
		for (ll i = 1; i * i <= B; i++) {
			if(B % i != 0) continue;
			ll K = B / i;
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, i, B / (l1 - K))) return 0;
			}
			K = B / (B / i);
			if(l1 > K && B % (l1 - K) == 0) {
				if(show(B, B / i, B / (l1 - K))) return 0;
			}
		}
	}
	puts("-1");
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (int X = n; X <= n + 1e4; X++) {
		for (int Y = X + 1; Y <= n + 1e4; Y++) {
			ll K = 2 * X * Y, aux = n * X * Y;
			if(aux % (K - (X * n) - (Y * n)) != 0 ) continue;
			ll Z = aux / (K - (X * n) - (Y * n));
			cout << X << ' ' << Y << ' ' << Z << endl;
			return 0;
		}
	}
	return 0;
}


#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

int n;
ll pos;

bool show(ll a, ll b, ll c) {
	if(a != b && b != c && a != c) {
		cout << a << ' ' << b << ' ' << c << endl;
		return 1;
	}
	return 0;
}

int main() {
	scanf("%d", &n);
	if(n == 1) {
		puts("-1");
		return 0;
	} else if(n == 2) {
		puts("2 3 6");
		return 0;
	}
	for (int X = n; X <= n + 1e4; X++) {
		for (int Y = X + 1; Y <= n + 1e4; Y++) {
			ll K = 2 * X * Y, aux = n * X * Y;
			if(aux % (K - (X * n) - (Y * n)) != 0 ) continue;
			ll Z = aux / (K - (X * n) - (Y * n));
			cout << X << ' ' << Y << ' ' << Z << endl;
			return 0;
		}
	}
	puts("-1");
	return 0;
}


#include <iostream>

using namespace std;

int main()
{
    long long n;
   cin>>n;
    double f=2/n;

   double c=(1/n)+(1/(n+1))+(1/((n*n)+n));
   double m=n;
   double  m2=n+1;
   double  m3=(n*n)+n;

if (f==c){cout<<m<<" "<<m2<<" "<<m3;}
else {cout<<-1<<endl;}
    return 0;
}


#include <iostream>

using namespace std;

int main()
{
    double n;
   cin>>n;
    double f=2/n;

   double c=(1/n)+(1/(n+1))+(1/((n*n)+n));
   double m=n;
   double  m2=n+1;
   double  m3=(n*n)+n;

if (f==c){cout<<m<<" "<<m2<<" "<<m3;}
else {cout<<-1<<endl;}
    return 0;
}


#include <iostream>

using namespace std;

int main()
{
    double n;
   cin>>n;
    long double f=2/n;

  long  double c=(1/n)+(1/(n+1))+(1/((n*n)+n));
  long  double m=n;
  long  double  m2=n+1;
   long double  m3=(n*n)+n;

if (f==c){cout<<m<<" "<<m2<<" "<<m3;}
else {cout<<-1<<endl;}
    return 0;
}


#include <iostream>

using namespace std;

int main()
{
    int n;

    cin>>n;

cout<<(n)<<" "<<(n+1)<<" "<<(n*n)+n;
    return 0;
}


#include <iostream>

using namespace std;

int main()
{
    double n;
   cin>>n;
    double f=2/n;

   double c=(1/n)+(1/(n+1))+(1/((n*n)+n));

if (f==c){cout<<(n)<<" "<<(n+1)<<" "<<(n*n)+n;}
else {cout<<-1<<endl;}
    return 0;
}


#include <iostream>

using namespace std;

int main()
{
    long long  n;
   cin>>n;
if (n==1) {cout<<-1<<endl;}
else {cout<<n<<" "<<n+1<<" "<<(n*n)+n;}

    return 0;
}


#include <iostream>

using namespace std;

int main()
{
    double n;
   cin>>n;
    double f=2/n;

   double c=(1/n)+(1/(n+1))+(1/((n*n)+n));
   long long m=n;
   long long m2=n+1;
   long long m3=(n*n)+n;

if (f==c){cout<<m<<" "<<m2<<" "<<m3;}
else {cout<<-1<<endl;}
    return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
	ll n;
	cin>>n;
	if(n<2)cout<<-1;
	else cout<<n<<" "<<n+1<<" "<<(n+1)*n;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
	ll n,x,y,p,q,i;
	cin>>n;
	if(n<3){cout<<-1; return 0;}
	i=2;
	while(true)
	{
		x=__gcd(n,i),y=n*i/x,p=n/x,q=i/x,q*=2;
		if(p<q && q-p==1) break;
		i++;
	}
	cout<<i<<" "<<y+1<<" "<<(y+1)*y;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
	ll n,x,y,p,q,i;
	cin>>n;
	if(n<2){cout<<-1; return 0;}
	i=2;
	while(true)
	{
		x=__gcd(n,i),y=n*i/x,p=n/x,q=i/x,q*=2;
		if(p<q && q-p==1) break;
		i++;
	}
	cout<<i<<" "<<y+1<<" "<<(y+1)*y;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;
#define ll long long
int main() {
	ll n;
	cin>>n;
	cout<<n<<" "<<n+1<<" "<<(n+1)*n;
	return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef pair<ll, int> PILL;
typedef pair<ll, ll> PLL;

const int MAX_N = 1e5+5;
const int M = 1e6;
const ll INF = (ll)(1e18);
const int inf = 1e9;
const ll MOD = 100000000LL;

void solve() {

}

ll n;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;

    for (ll x = 1LL; x <= 10000; x++) {
        for (ll y = 1LL; y <= 10000; y++) {
            if (x == y) continue;
            ll tmp = n*x*y;
            ll help = 2*x*y - n*x - n*y;
            //cout << "D: " << tmp << " " << help << "\n";
            if (help > 0 && tmp%help == 0 && tmp/help != x && tmp/help != y) {
                cout << x << " " << y << " " << tmp/help;
                return 0;
            }
        }
    }

    cout << -1;

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef pair<ll, int> PILL;
typedef pair<ll, ll> PLL;

const int MAX_N = 1e5+5;
const int M = 1e6;
const ll INF = (ll)(1e18);
const int inf = 1e9;
const ll MOD = 100000000LL;

void solve() {

}

ll n;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;
    if (n == 1) {
        cout << -1;
        return 0;
    }

    cout << n << " " << n+1 << " " << n*(n+1);

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef pair<ll, int> PILL;
typedef pair<ll, ll> PLL;

const int MAX_N = 1e5+5;
const int M = 1e6;
const ll INF = (ll)(1e18);
const int inf = 1e9;
const ll MOD = 100000000LL;

void solve() {

}

ll n;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;
    for (ll x = 1LL; x <= 10000; x++) {
        for (ll y = 1LL; y <= 10000; y++) {
            ll tmp = n*x*y;
            ll help = 2*x*y - n*x - n*y;
            //cout << "D: " << tmp << " " << help << "\n";
            if (help > 0 && tmp%help == 0) {
                cout << x << " " << y << " " << tmp/help;
                return 0;
            }
        }
    }

    cout << -1;

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef pair<ll, int> PILL;
typedef pair<ll, ll> PLL;

const int MAX_N = 1e5+5;
const int M = 1e6;
const ll INF = (ll)(1e18);
const int inf = 1e9;
const ll MOD = 100000000LL;

void solve() {

}

ll n;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;
    if (n == 1) {
        cout << "1 2 2";
        return 0;
    }
    for (ll x = 1LL; x <= 10000; x++) {
        for (ll y = 1LL; y <= 10000; y++) {
            ll tmp = n*x*y;
            ll help = 2*x*y - n*x - n*y;
            //cout << "D: " << tmp << " " << help << "\n";
            if (help > 0 && tmp%help == 0) {
                cout << x << " " << y << " " << tmp/help;
                return 0;
            }
        }
    }

    cout << -1;

    return 0;
}


#include <bits/stdc++.h>
using namespace std;

typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef pair<int, int> PII;
typedef pair<ll, int> PILL;
typedef pair<ll, ll> PLL;

const int MAX_N = 1e5+5;
const int M = 1e6;
const ll INF = (ll)(1e18);
const int inf = 1e9;
const ll MOD = 100000000LL;

void solve() {

}

ll n;

int main() {
    ios_base::sync_with_stdio(0);
    cin.tie(0);

    cin >> n;

    for (ll x = 1LL; x <= 10000; x++) {
        for (ll y = 1LL; y <= 10000; y++) {
            if (x == y) continue;
            ll tmp = n*x*y;
            ll help = 2*x*y - n*x - n*y;
            //cout << "D: " << tmp << " " << help << "\n";
            if (help > 0 && tmp%help == 0 && tmp/help != x && tmp/help != y && tmp/help <= (ll)inf) {
                cout << x << " " << y << " " << tmp/help;
                return 0;
            }
        }
    }

    cout << -1;

    return 0;
}


#include <bits/stdc++.h>

using namespace std;
# define M_PI 3.14159265358979323846
# define epsi 1e-9
# define F first
# define S second
# define vect vector
# define pll pair<ll,ll>
# define pii pair<int,int>
# define forn(i, n) for(int i=0;i<int(n);i++)
# define forab(i, a, b) for(int i=a;i<=b;i++)
using ll = long long int;
const int MOD = 1e9 + 7;
# define my_sizeof(type) ((char *)(&type+1)-(char*)(&type))

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin >> t;
    while (t-- > 0) {
        int n;
        cin >> n;
        if (n % 2 == 0) {
            ll x = (2 * 3 * n) / 4;
            ll y = (2 * 6 * n) / 4;
            ll z = 2 * x * x * n / (4 * x * x - 3 * x * n);
            cout << x << " " << y << " " << z << '\n';
        } else {
            if (n == 1)
                cout << -1 << '\n';
            else {
                ll x=n,y=n*(n+1),z=n+1;
                cout<<x<<" "<<y<<" "<<z<<"\n";
            }
        }
    }
}


#include <bits/stdc++.h>

using namespace std;
# define M_PI 3.14159265358979323846
# define epsi 1e-9
# define F first
# define S second
# define vect vector
# define pll pair<ll,ll>
# define pii pair<int,int>
# define forn(i, n) for(int i=0;i<int(n);i++)
# define forab(i, a, b) for(int i=a;i<=b;i++)
using ll = long long int;
const int MOD = 1e9 + 7;
# define my_sizeof(type) ((char *)(&type+1)-(char*)(&type))

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    while (t-- > 0) {
        int n;
        cin >> n;
        if (n % 2 == 0) {
            ll x = (2 * 3 * n) / 4;
            ll y = (2 * 6 * n) / 4;
            ll z = 2 * x * x * n / (4 * x * x - 3 * x * n);
            cout << x << " " << y << " " << z << '\n';
        } else {
            if (n == 1)
                cout << -1 << '\n';
            else {
                ll x=n,y=n*(n+1),z=n+1;
                cout<<x<<" "<<y<<" "<<z<<"\n";
            }
        }
    }
}


#include <bits/stdc++.h>

using namespace std;
# define M_PI 3.14159265358979323846
# define epsi 1e-9
# define F first
# define S second
# define vect vector
# define pll pair<ll,ll>
# define pii pair<int,int>
# define forn(i, n) for(int i=0;i<int(n);i++)
# define forab(i, a, b) for(int i=a;i<=b;i++)
using ll = long long int;
const int MOD = 1e9 + 7;
# define my_sizeof(type) ((char *)(&type+1)-(char*)(&type))

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t=1;
    while (t-- > 0) {
        int n;
        cin >> n;
        if (false) {
            ll x = (2 * 3 * n) / 4;
            ll y = (2 * 6 * n) / 4;
            ll z = 2 * x * x * n / (4 * x * x - 3 * x * n);
            cout << x << " " << y << " " << z << '\n';
        } else {
            if (n == 1)
                cout << -1 << '\n';
            else {
                ll x=n,y=n*(n+1),z=n+1;
                cout<<x<<" "<<y<<" "<<z<<"\n";
            }
        }
    }
}


#include <bits/stdc++.h>

using namespace std;
# define M_PI 3.14159265358979323846
# define epsi 1e-9
# define F first
# define S second
# define vect vector
# define pll pair<ll,ll>
# define pii pair<int,int>
# define forn(i, n) for(int i=0;i<int(n);i++)
# define forab(i, a, b) for(int i=a;i<=b;i++)
using ll = long long int;
const int MOD = 1e9 + 7;
# define my_sizeof(type) ((char *)(&type+1)-(char*)(&type))

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t;
    cin >> t;
    while (t-- > 0) {
        int n;
        cin >> n;
        if (n % 2 == 0) {
            ll x = (2 * 3 * n) / 4;
            ll y = (2 * 6 * n) / 4;
            ll z = 2 * x * x * n / (4 * x * x - 3 * x * n);
            cout << x << " " << y << " " << z << '\n';
        } else {
            if (n == 1)
                cout << -1 << '\n';
            else {

            }
        }
    }
}


#include <bits/stdc++.h>

using namespace std;
# define M_PI 3.14159265358979323846
# define epsi 1e-9
# define F first
# define S second
# define vect vector
# define pll pair<ll,ll>
# define pii pair<int,int>
# define forn(i, n) for(int i=0;i<int(n);i++)
# define forab(i, a, b) for(int i=a;i<=b;i++)
using ll = long long int;
const int MOD = 1e9 + 7;
# define my_sizeof(type) ((char *)(&type+1)-(char*)(&type))

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    int t = 1;
    while (t-- > 0) {
        int n;
        cin >> n;
        if (n == 1)
            cout << -1 << '\n';
        else {
            ll x = n, y = n * (n + 1), z = n + 1;
            cout << x << " " << y << " " << z << "\n";
        }

    }
}


/*Hugo David Franco Avila*/
#include <iostream>
#include <bits/stdc++.h>

int getY(int n, int n1);
int getZ(int n, int n1, int n2);
bool win(int num, int x, int y, int z);

int getY(int n, int n1){
	int y = n1+1;
	float num = 2.0/n, equis = 1.0/n1, check = 1.0/y;
	while(num <= (check + equis)){
		check = 1.0/y;
		y++;
	}
	return y;
}

int getZ(int n, int n1, int n2){
	//bool rompe = true;
	int z = n2+1;
	float num = 2.0/n, equis = 1.0/n1, ye = 1.0/n2, check;
	while(!win(n, n1, n2, z)){
		check = 1.0/z;
		if((equis + ye + check) <= num){
			break;
		}
		z++;
	}
	return z;
}

bool win(int num, int x, int y, int z){
	float numero = 2.0/num, cx = 1.0/x, cy = 1.0/y, cz = 1.0/z, res;
	res = cx + cy + cz;
	if(numero == res) return true;
	return false;
}

int main(){
	bool rep = false;
	int input, x = 2, y, z;
	//int *px = &x, *py = &y, *pz = &z;
	float left, comp;
	std::cin >> input;
	left = 2.0/input;
	if(input < 3){
		std::cout << -1;
	} else{
		//while(!win(input, *px, *py, *pz)){
		while(!win(input, x, y, z)){
			//comp = 1.0/ *px;
			comp = 1.0/ x;
			while(comp >= left){
				x++;
				comp = 1.0/x;
			}
			//*py = getY(input, *px);
			y = getY(input, x);
			//*pz = getZ(input, *px, *py);
			z = getZ(input, x, y);
			//if(win(input, *px, *py, *pz)){
			if(win(input, x, y, z)){
				rep = true;
				break;
			} else{
				x++;
			}
			//if(((1.0/ *px) + (1.0/( *px+1)) + (1.0/( *px+2))) < 2.0/input){
			if(((1.0/ x) + (1.0/( x+1)) + (1.0/( x+2))) < left){
				break;
			}

		}
		if(rep){
			//std::cout << *px << " " << *py << " " << *pz;
			std::cout << x << " " << y << " " << z;
		} else{
			std::cout << -1;
		}
	}
	return 0;
}