#include <bits/stdc++.h>
using namespace std;
int n, m;
double w;
double milk[1001];
vector<pair<int, double> > cups[1001];
vector<int> cnt[1001];
bool eps_gt(double a, double b) {
  if ((a - b) > 1e-8) return 1;
  return 0;
}
bool eps_lt(double a, double b) {
  if ((a - b) < -(1e-8)) return 1;
  return 0;
}
bool eps_eq(double a, double b) {
  if (fabs(a - b) < 1e-8) return 1;
  return 0;
}
int main() {
  cin >> n >> w >> m;
  double e = n * w * 1.0 / (1.0 * m);
  for (int i = 1; i <= n; i++) milk[i] = w;
  int j = 1;
  double q = 0;
  for (int i = 1; i <= m; i++) {
    q = e;
    while (q > 0) {
      if (!eps_lt(milk[j], q)) {
        cnt[j].push_back(i);
        cups[i].push_back(make_pair(j, q));
        milk[j] -= q;
        q = 0;
        if (eps_eq(milk[j], 0)) milk[j] = 0;
      } else {
        cnt[j].push_back(i);
        cups[i].push_back(make_pair(j, milk[j]));
        q -= milk[j];
        if (eps_eq(q, 0)) q = 0;
        milk[j] = 0;
      }
      if (milk[j] == 0) j++;
    }
  }
  for (int i = 1; i <= n; i++)
    if (cnt[i].size() >= 3) {
      cout << "NO" << endl;
      return 0;
    }
  cout << "YES" << endl;
  for (int i = 1; i <= m; i++) {
    for (int j = 0; j < cups[i].size(); j++)
      if (j == 0)
        printf("%d %lf", cups[i][j].first, cups[i][j].second);
      else
        printf(" %d %lf", cups[i][j].first, cups[i][j].second);
    printf("\n");
  }
  return 0;
}
