#include <iostream>
#include <vector>
#include <algorithm>
#include <queue>
#include <map>
#include <set>
#include <bits/stdc++.h>
using namespace std;
#include <ext/pb_ds/assoc_container.hpp>
using namespace __gnu_pbds;
template <class T>
using orderStaticTree =
tree<T, null_type, less<T>, rb_tree_tag, tree_order_statistics_node_update>;
#define ll long long
#define saleh \
ios_base::sync_with_stdio(false); \
cin.tie(nullptr);
const int md = 1e9 + 7;
#define ll long long
const ll remo = -1e18;
int main()
{
saleh;
int n;
cin >> n;
if(n<3){
cout<<-1<<endl;
return 0;
}
vector<bool> is_prime(n + 1, true);
is_prime[0] = is_prime[1] = false;
for (int i = 2; i * i <= n; ++i)
{
if (is_prime[i])
{
for (int j = i * i; j <= n; j += i)
is_prime[j] = false;
}
}
set<double>st;
for (int i = 2; i <= n; ++i)
if (is_prime[i])
st.insert(i);
auto pp = st.upper_bound(n);
pp--;
cout<<floor(double(*pp/3))<<" "<<floor(double(*pp/3))<<" "<<floor(double(*pp/3)) + int(*pp)%3<<endl;
return 0;
}
CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGFsZ29yaXRobT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8bWFwPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2luY2x1ZGUgPGV4dC9wYl9kcy9hc3NvY19jb250YWluZXIuaHBwPgp1c2luZyBuYW1lc3BhY2UgX19nbnVfcGJkczsKdGVtcGxhdGUgPGNsYXNzIFQ+CnVzaW5nIG9yZGVyU3RhdGljVHJlZSA9CiAgICB0cmVlPFQsIG51bGxfdHlwZSwgbGVzczxUPiwgcmJfdHJlZV90YWcsIHRyZWVfb3JkZXJfc3RhdGlzdGljc19ub2RlX3VwZGF0ZT47CgojZGVmaW5lIGxsIGxvbmcgbG9uZwoKI2RlZmluZSBzYWxlaCAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgXAogICAgY2luLnRpZShudWxscHRyKTsKCmNvbnN0IGludCBtZCA9IDFlOSArIDc7CiNkZWZpbmUgbGwgbG9uZyBsb25nCgpjb25zdCBsbCByZW1vID0gLTFlMTg7CgoKaW50IG1haW4oKQp7CiAgICBzYWxlaDsKICAgIGludCBuOwogICAgY2luID4+IG47CiAgICBpZihuPDMpewogICAgICAgIGNvdXQ8PC0xPDxlbmRsOwogICAgICAgIHJldHVybiAwOwogICAgfQoKICAgIHZlY3Rvcjxib29sPiBpc19wcmltZShuICsgMSwgdHJ1ZSk7CiAgICBpc19wcmltZVswXSA9IGlzX3ByaW1lWzFdID0gZmFsc2U7CgogICAgZm9yIChpbnQgaSA9IDI7IGkgKiBpIDw9IG47ICsraSkKICAgIHsKICAgICAgICBpZiAoaXNfcHJpbWVbaV0pCiAgICAgICAgewogICAgICAgICAgICBmb3IgKGludCBqID0gaSAqIGk7IGogPD0gbjsgaiArPSBpKQogICAgICAgICAgICAgICAgaXNfcHJpbWVbal0gPSBmYWxzZTsKICAgICAgICB9CiAgICB9CiAgICBzZXQ8ZG91YmxlPnN0OwogICAgZm9yIChpbnQgaSA9IDI7IGkgPD0gbjsgKytpKSAgICAKICAgICAgICBpZiAoaXNfcHJpbWVbaV0pCiAgICAgICAgICAgIHN0Lmluc2VydChpKTsKCiAgICBhdXRvIHBwID0gc3QudXBwZXJfYm91bmQobik7CiAgICBwcC0tOwogICAgY291dDw8Zmxvb3IoZG91YmxlKCpwcC8zKSk8PCIgIjw8Zmxvb3IoZG91YmxlKCpwcC8zKSk8PCIgIjw8Zmxvb3IoZG91YmxlKCpwcC8zKSkgKyBpbnQoKnBwKSUzPDxlbmRsOwoKCiAgICByZXR1cm4gMDsKfQ==