#include <bits/stdc++.h>
using namespace std;
long long intersect(long long l1, long long r1, long long l2, long long r2) {
  long long l = max(l1, l2);
  long long r = min(r1, r2);
  return max(r - l, 0LL);
}
int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }
int main() {
  long long n, m;
  double w;
  cin >> n >> w >> m;
  if (m > n * 2) {
    cout << "NO\n";
    return 0;
  }
  if (n >= m) {
    cout << "YES\n";
    for (int i = 0, j = 0; j < m;) {
      while ((i + 1) * m <= j * n) i++;
      if (i < n) {
        long long z = intersect(i * m, (i + 1) * m, j * n, (j + 1) * n);
        if (z > 0) printf("%d %f ", i + 1, w * z / m);
      }
      if ((i + 1) * m <= (j + 1) * n)
        i++;
      else {
        cout << '\n';
        j++;
      }
    }
    return 0;
  }
  int d = gcd(n, m);
  n /= d, m /= d;
  if (m != n + 1) {
    cout << "NO\n";
    return 0;
  }
  cout << "YES\n";
  for (int h = 0; h < d; h++)
    for (int j = 0; j < m; j++) {
      if (j > 0) printf("%lld %f ", h * n + j, w * j / m);
      if (j < m - 1) printf("%lld %f ", h * n + j + 1, w * (m - 1 - j) / m);
      printf("\n");
    }
  return 0;
}
