#include <bits/stdc++.h>
using namespace std;
int n, w, m;
vector<pair<int, double> > resp[64];
inline int cmpf(double a, double b) {
  if (fabs(a - b) < 1e-7) return 0;
  return a < b ? -1 : 1;
}
int main() {
  scanf("%d %d %d", &n, &w, &m);
  double cada = (double)(n * w) / (double)m;
  int atu = 0, useiatu = 0;
  double capatu = (double)w;
  for (int i = 0; i < m; i++) {
    resp[i].clear();
    double v = 0.0;
    while (cmpf(v, cada) < 0) {
      if (atu == n) {
        printf("NO\n");
        return 0;
      }
      double desp = min(capatu, (cada - v));
      v += desp;
      capatu -= desp;
      useiatu++;
      resp[i].push_back(pair<int, double>(atu, desp));
      if (useiatu > 2) {
        printf("NO\n");
        return 0;
      }
      if (cmpf(capatu, 0.0) == 0) {
        atu++;
        useiatu = 0;
        capatu = (double)w;
      }
    }
  }
  printf("YES\n");
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < (int)resp[i].size(); j++) {
      if (j) printf(" ");
      printf("%d %.7lf", resp[i][j].first + 1, resp[i][j].second);
    }
    printf("\n");
  }
  return 0;
}
