#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
int ans[55];
struct re {
  int i;
  double r;
} res[100][100], bbu[55];
bool cmp(re a, re b) { return a.r - b.r > eps; }
int main() {
  double n, m, w;
  while (~scanf("%lf%lf%lf", &n, &w, &m)) {
    double ave = n * w / m, x = ave / w;
    for (int i = 1; i <= n; i++) {
      bbu[i].r = w;
      bbu[i].i = i;
    }
    int cnt = 0, flag = 0;
    for (int i = 1; i <= m; i++) {
      double sum = ave;
      cnt = 0;
      res[i][0].i = 0;
      for (int j = 1; j <= n && sum > eps; j++)
        if (bbu[j].r > eps) {
          double t = min(bbu[j].r, sum);
          res[i][++cnt].i = bbu[j].i;
          res[i][cnt].r = t;
          sum -= t;
          bbu[j].r -= t;
          ans[bbu[j].i]++;
          if (ans[bbu[j].i] > 2) {
            flag = 1;
            break;
          }
        }
      res[i][0].i = cnt;
    }
    if (flag) {
      printf("NO\n");
      continue;
    } else {
      printf("YES\n");
      for (int i = 1; i <= m; i++)
        for (int j = 1; j <= res[i][0].i; j++)
          printf("%d %.6f%c", res[i][j].i, res[i][j].r,
                 (j == res[i][0].i) ? '\n' : ' ');
    }
  }
  return 0;
}
