Little C loves number «3» very much. He loves all things about it.

Now he has a positive integer n. He wants to split n into 3 positive integers a,b,c, such that a+b+c=n and none of the 3 integers is a multiple of 3. Help him to find a solution.

Input

A single line containing one integer n (3 ≤ n ≤ 10^9) — the integer Little C has.

Output

Print 3 positive integers a,b,c in a single line, such that a+b+c=n and none of them is a multiple of 3.

It can be proved that there is at least one solution. If there are multiple solutions, print any of them.

Examples

Input

3


Output

1 1 1

Input

233

Output

77 77 79
#include <bits/stdc++.h>
using namespace std;
template <class _T>
inline void ina(_T a[], int n) {
  for (int i = 0; i < n; i++) cin >> (a[i]);
}
int TEST_CASE = 0;
template <class _T>
inline _T pow(_T a, _T b, _T m) {
  a %= m;
  _T ans = 1 % m;
  while (b) {
    if (b & 1) ans *= a, ans %= m;
    a *= a;
    a %= m;
    b >>= 1;
  }
  return ans;
}
template <class _T>
inline _T pow(_T a, _T b) {
  _T ans = 1;
  while (b) {
    if (b & 1) ans *= a;
    a *= a;
    b >>= 1;
  }
  return ans;
}
template <class _T>
inline _T add(_T a, _T b, _T m) {
  return a >= m - b ? a - (m - b) : a + b;
}
template <class _T>
inline _T multiply(_T a, _T b, _T m) {
  _T ans = 0;
  if (b > a) swap(a, b);
  while (b) {
    if (b & 1) ans = add(ans, a, m);
    b >>= 1;
    a = add(a, a, m);
  }
  return ans;
}
template <class _T>
inline _T bigpow(_T a, _T b, _T m) {
  a %= m;
  _T ans = 1 % m;
  while (b) {
    if (b & 1) ans = multiply(ans, a, m);
    a = multiply(a, a, m);
    b >>= 1;
  }
  return ans;
}
template <class _T>
inline _T modinvers(_T a, _T m) {
  return m > 2000000000LL ? bigpow(a, m - 2, m) : pow(a, m - 2, m);
}
template <class _T>
_T _egcd(_T a, _T b, _T &x, _T &y) {
  if (!b) {
    x = 1, y = 0;
    return a;
  }
  _T _g = _egcd(b, a % b, x, y);
  _T xt = x;
  x = y, y = xt - (a / b) * y;
  return _g;
}
template <class _T>
inline _T fmodinvers(_T a, _T m) {
  _T x, y;
  _egcd(a, m, x, y);
  x %= m;
  if (x < 0) x += m;
  return x;
}
template <class _T>
inline _T _lcm(_T a, _T b) {
  return (a * b) / __gcd(a, b);
}
template <class T>
inline T SQ(T a) {
  return a * a;
}
long long SQRT(long long n) {
  long long e = sqrt(n * 1.0);
  long long l = max(0LL, e - 2), r = min(n, e + 2);
  long long ans = 0;
  while (l <= r) {
    long long m = ((l + r) >> 1);
    if (m * m <= n)
      ans = m, l = m + 1;
    else
      r = m - 1;
  }
  return ans;
}
long long CBRT(long long n) {
  long long e = cbrt(n * 1.0);
  long long l = max(0LL, e - 2), r = min(n, e + 2);
  long long ans = 0;
  while (l <= r) {
    long long m = ((l + r) >> 1);
    if (m * m * m <= n)
      ans = m, l = m + 1;
    else
      r = m - 1;
  }
  return ans;
}
const long double EPS = 1e-9;
const long double PI = acos(-1.0);
const int MX = 6e5 + 5;
long long mod = 1e9 + 7;
int main() {
  long long n, a, b, c;
  cin >> n;
  a = n / 3;
  b = n - a;
  c = b / 2;
  b = b - c;
  if ((a % 3) && (b % 3) && (c % 3))
    cout << a << " " << b << " " << c << '\n';
  else {
    if (b < a) swap(a, b);
    if (c < a) swap(a, c);
    if (c < b) swap(b, c);
    if (a % 3 == 0 && b % 3 == 0 && c % 3 == 0) {
      cout << a + 2 << " " << b - 1 << " " << c - 1 << '\n';
    } else if (a % 3 == 0 && b % 3 == 0) {
      cout << a + 1 << " " << b - 1 << " " << c << '\n';
    } else if (b % 3 == 0 && c % 3 == 0) {
      cout << a << " " << b + 1 << " " << c - 1 << '\n';
    } else if (a % 3 == 0 && c % 3 == 0) {
      cout << a + 1 << " " << b << " " << c - 1 << '\n';
    } else if (a % 3 == 0) {
      if ((b - 2) % 3)
        cout << a + 2 << " " << b - 2 << " " << c << '\n';
      else
        cout << a + 1 << " " << b - 1 << " " << c << '\n';
    } else if (b % 3 == 0) {
      if ((c - 1) % 3)
        cout << a << " " << b + 1 << " " << c - 1 << '\n';
      else
        cout << a << " " << b + 2 << " " << c - 2 << '\n';
    } else if (c % 3 == 0) {
      if ((b + 1) % 3)
        cout << a << " " << b + 1 << " " << c - 1 << '\n';
      else
        cout << a << " " << b + 2 << " " << c - 2 << '\n';
    } else
      assert(0);
  }
  return 0;
}
