#include <bits/stdc++.h>
int fx[] = {-1, 0, +1, 0}, fy[] = {0, +1, 0, -1},
    ex[] = {-1, -1, 0, +1, +1, +1, 0, -1},
    ey[] = {0, +1, +1, +1, 0, -1, -1, -1};
using namespace std;
int n, w, m;
vector<pair<int, double> > ans[100];
double a[100];
int main() {
  scanf("%d%d%d", &n, &w, &m);
  double milk, tot = 1. * w * n / m, x;
  int j = 0;
  for (int i = 0; i < n && j < m; i++) {
    milk = w;
    x = min(milk, tot - a[j]);
    milk -= x;
    a[j] += x;
    ans[j].push_back(make_pair(i + 1, x));
    if (tot - a[j] < 1e-10) j++;
    x = min(milk, tot - a[j]);
    milk -= x;
    a[j] += x;
    if (x > 1e-10) ans[j].push_back(make_pair(i + 1, x));
    if (milk > 1e-10) {
      puts("NO");
      return 0;
    }
    if (tot - a[j] < 1e-10) j++;
  }
  if (j != m)
    puts("NO");
  else {
    puts("YES");
    for (int i = 0; i < m; i++) {
      for (int j = 0; j < ans[i].size(); j++)
        printf("%d %.6lf ", ans[i][j].first, ans[i][j].second);
      puts("");
    }
  }
  return 0;
}
