#include <bits/stdc++.h>
using namespace std;
vector<pair<int, double> > ans[55];
double n, w, m, lim, bo[55], kr[55], eps = 1e-6;
int u[55];
int main() {
  cin >> n >> w >> m;
  lim = n * w / m;
  for (int i = 0; i < n; i++) {
    bo[i] = w;
  }
  int j = 0;
  for (int i = 0; i < m; i++) {
    if (eps >= lim - kr[i] - bo[j]) {
      ans[i].push_back(make_pair(j + 1, lim - kr[i]));
      bo[j] -= lim - kr[i];
      kr[i] = lim;
      u[j]++;
      if (bo[j] <= eps) j++;
      continue;
    }
    while (kr[i] < lim && j < n) {
      if (0 <= lim - kr[i] - bo[j]) {
        ans[i].push_back(make_pair(j + 1, bo[j]));
        kr[i] += bo[j];
        bo[j] = 0;
        u[j]++;
        j++;
      } else {
        ans[i].push_back(make_pair(j + 1, lim - kr[i]));
        bo[j] -= lim - kr[i];
        kr[i] = lim;
        u[j]++;
        break;
      }
    }
  }
  for (int i = 0; i < n; i++) {
    if (u[i] > 2) {
      cout << "NO";
      return 0;
    }
  }
  cout << "YES\n";
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < ans[i].size(); j++) {
      cout << ans[i][j].first << " " << setprecision(10) << fixed
           << ans[i][j].second << " ";
    }
    cout << endl;
  }
  return 0;
}
