Vasya has got three integers n, m and k. He'd like to find three integer points (x_1, y_1), (x_2, y_2), (x_3, y_3), such that 0 ≤ x_1, x_2, x_3 ≤ n, 0 ≤ y_1, y_2, y_3 ≤ m and the area of the triangle formed by these points is equal to nm/k.

Help Vasya! Find such points (if it's possible). If there are multiple solutions, print any of them.

Input

The single line contains three integers n, m, k (1≤ n, m ≤ 10^9, 2 ≤ k ≤ 10^9).

Output

If there are no such points, print "NO".

Otherwise print "YES" in the first line. The next three lines should contain integers x_i, y_i — coordinates of the points, one point per line. If there are multiple solutions, print any of them.

You can print each letter in any case (upper or lower).

Examples

Input

4 3 3


Output

YES
1 0
2 3
4 1


Input

4 4 7


Output

NO

Note

In the first example area of the triangle should be equal to nm/k = 4. The triangle mentioned in the output is pictured below: 

<image>

In the second example there is no triangle with area nm/k = 16/7.
#include <bits/stdc++.h>
const long long N = 1e6;
const long long INF = 1e18;
const long long inf = -1e18;
const long long MOD = 998244353;
const long long xesh = 31;
using namespace std;
long long n, m, k;
int main() {
  ios_base::sync_with_stdio(0);
  long long o = 1;
  while (o--) {
    cin >> n >> m >> k;
    if ((2 * n * m) % k != 0)
      cout << "NO";
    else {
      cout << "YES\n";
      long long ans = 1, cnt = 1;
      long long nn = n + n;
      long long mm = m;
      long long s = 2 * n * m / k;
      map<long long, long long> ma;
      for (long long i = 2; i * i <= nn; i++) {
        if (nn % i == 0) {
          while (nn % i == 0) {
            nn /= i;
            ma[i] += 1;
          }
        }
      }
      if (nn > 1) ma[nn] += 1;
      for (long long i = 2; i * i <= m; i++) {
        if (m % i == 0) {
          while (m % i == 0) {
            m /= i;
            ma[i] += 1;
          }
        }
      }
      if (m > 1) ma[m] += 1;
      for (long long i = 2; i * i <= k; i++) {
        if (k % i == 0) {
          while (k % i == 0) {
            k /= i;
            ma[i] -= 1;
          }
        }
      }
      if (k > 1) ma[k] -= 1;
      nn = n + n;
      for (auto x : ma) {
        while (x.second > 0 && nn % x.first == 0) {
          nn /= x.first;
          x.second--;
          ans *= x.first;
        }
        while (x.second > 0) {
          cnt *= x.first;
          x.second--;
        }
      }
      if (ans > n) {
        ans /= 2;
        cnt *= 2;
      }
      cout << "0 0\n"
           << "0 " << cnt << "\n"
           << ans << " 0";
    }
  }
}
