#include <bits/stdc++.h>
int n, m, w;
int bot[100], cup[100];
std::vector<int> ans1[100000], ans3[100000];
std::vector<int> ans2[100000], ans4[100000];
int main(void) {
  scanf("%d%d%d", &n, &w, &m);
  int amo = n;
  for (int i = 1; i <= n; ++i) bot[i] = m;
  int bp = 1, cp = 1;
  while (cp <= m && bp <= n) {
    if (amo - cup[cp] <= bot[bp]) {
      ans1[bp].push_back(amo - cup[cp]);
      ans2[bp].push_back(cp);
      ans3[cp].push_back(amo - cup[cp]);
      ans4[cp].push_back(bp);
      bot[bp] -= amo - cup[cp];
      ++cp;
      if (bot[bp] == 0) ++bp;
    } else {
      ans1[bp].push_back(bot[bp]);
      ans2[bp].push_back(cp);
      ans3[cp].push_back(bot[bp]);
      ans4[cp].push_back(bp);
      cup[cp] += bot[bp];
      ++bp;
    }
  }
  for (int i = 1; i <= n; ++i)
    if (ans1[i].size() > 2) {
      puts("NO");
      return 0;
    }
  puts("YES");
  for (int i = 1; i <= m; ++i) {
    for (int j = 0; j < ans3[i].size(); ++j) {
      printf("%d %.7lf ", ans4[i][j], (double)ans3[i][j] * w / m);
    }
    puts("");
  }
  return 0;
}
