#include <bits/stdc++.h>
using namespace std;
int main() {
  int n, w, m;
  ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr),
      cin >> n >> w >> m;
  struct bottle_t {
    int amount, id;
  } bottle, poured;
  stack<bottle_t> bottles, non_empty;
  vector<bottle_t> cup[m + 1];
  for (bottle.amount = m, bottle.id = 1; bottle.id <= n; bottle.id++)
    bottles.push(bottle);
  for (int i = 1, unfilled = n; i <= m; i++, unfilled = n) {
    while (!non_empty.empty()) bottles.push(non_empty.top()), non_empty.pop();
    do {
      bottle = bottles.top(), bottles.pop();
      if (bottle.amount > unfilled && bottle.amount < m) {
        cout << "NO";
        return 0;
      }
      poured = bottle;
      if (unfilled < poured.amount) poured.amount = unfilled;
      cup[i].push_back(poured);
      if ((bottle.amount -= poured.amount) > 0) non_empty.push(bottle);
    } while ((unfilled -= poured.amount) > 0);
  }
  cout << "YES" << '\n';
  long double scale_factor = (long double)w / (long double)m;
  for (int i = 1; i <= m; i++, cout << '\n')
    for (int j = 0, k = cup[i].size(); j < k; j++)
      cout << cup[i][j].id << ' ' << fixed << setprecision(6)
           << scale_factor * cup[i][j].amount << ' ';
}
