#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, m, i, j;
  double w;
  while (scanf("%d%lf%d", &n, &w, &m) != EOF) {
    double each = n * w / m;
    vector<vector<pair<int, double> > > out;
    out.clear();
    out.resize(m);
    int us[100];
    double bt[100], cp[100];
    memset(us, 0, sizeof(us));
    for (i = 0; i < m; i++) cp[i] = each;
    for (i = 0; i < n; i++) bt[i] = w;
    for (i = 0, j = 0; i < m; i++) {
      while (cp[i] > 1e-8) {
        if (bt[j] > cp[i] + 1e-8) {
          out[i].push_back(make_pair(j + 1, cp[i]));
          bt[j] -= cp[i];
          cp[i] -= cp[i];
          us[j]++;
        } else {
          out[i].push_back(make_pair(j + 1, bt[j]));
          cp[i] -= bt[j];
          bt[j] -= bt[j];
          us[j]++;
          j++;
        }
      }
    }
    for (i = 0; i < n; i++)
      if (us[i] > 2) {
        i = -1;
        break;
      }
    if (i == -1)
      printf("NO\n");
    else {
      printf("YES\n");
      for (i = 0; i < m; i++) {
        for (j = 0; j < out[i].size(); j++) {
          if (j == out[i].size() - 1)
            printf("%d %.6f\n", out[i][j].first, out[i][j].second);
          else
            printf("%d %.6f ", out[i][j].first, out[i][j].second);
        }
      }
    }
  }
  return 0;
}
