#include <bits/stdc++.h>
const double EPS = 1e-8;
using namespace std;
int main() {
  int n, w, m;
  while (cin >> n >> w >> m) {
    bool ok = true;
    double target = (double)n * w / m;
    vector<double> p(m, 0.0);
    vector<vector<pair<int, double> > > ans(m);
    for (int i = 0; i < (int)n; i++) {
      double left = w;
      int cnt = 0;
      while (left > EPS) {
        for (int j = 0; j < (int)m; j++) {
          if (p[j] + EPS < target) {
            if (target - p[j] > left + EPS) {
              p[j] += left;
              ans[j].push_back(make_pair(i, left));
              left = 0;
              break;
            } else {
              left -= (target - p[j]);
              ans[j].push_back(make_pair(i, target - p[j]));
              p[j] = target;
              break;
            }
          }
        }
        cnt++;
        if (cnt > 2) break;
      }
      if (cnt > 2) {
        ok = false;
        break;
      }
    }
    if (ok) {
      puts("YES");
      for (int i = 0; i < (int)m; i++) {
        for (int j = 0; j < (int)ans[i].size(); j++) {
          if (j != 0) putchar(' ');
          printf("%d %.8f", ans[i][j].first + 1, ans[i][j].second);
        }
        cout << endl;
      }
    } else {
      puts("NO");
    }
  }
}
