#include <bits/stdc++.h>
using namespace std;
bool cmp(int x) { return (x > 2); }
int main() {
  int n, w, m, i, bottles[1000], remaining_bottle = 1;
  cin >> n >> w >> m;
  double e = 0.000001, milk, all_milk = n * w, one_milk = all_milk / m,
         amount_remaining = w;
  for (i = 0; i <= 100; ++i) bottles[i] = 0;
  for (i = 1; i <= m; ++i) {
    milk = one_milk;
    while (milk > 0) {
      bottles[remaining_bottle]++;
      if (amount_remaining - milk > e) {
        amount_remaining -= milk;
        milk = 0;
      } else if (fabs(amount_remaining - milk) < e) {
        ++remaining_bottle;
        amount_remaining = w;
        milk = 0;
      } else if (milk - amount_remaining > e) {
        milk -= amount_remaining;
        ++remaining_bottle;
        amount_remaining = w;
      }
    }
  }
  int* ptr = find_if(bottles, bottles + n, cmp);
  if (ptr != bottles + n || m > 2 * n)
    cout << "NO";
  else {
    cout << "YES" << endl;
    one_milk = all_milk / m;
    amount_remaining = w;
    remaining_bottle = 1;
    for (i = 1; i <= m; ++i) {
      milk = one_milk;
      while (milk > 0) {
        cout << remaining_bottle << " ";
        if (amount_remaining - milk > e) {
          printf("%.6f", milk);
          cout << " ";
          amount_remaining -= milk;
          milk = 0;
        } else if (fabs(amount_remaining - milk) < e) {
          printf("%.6f", milk);
          cout << " ";
          ++remaining_bottle;
          amount_remaining = w;
          milk = 0;
        } else if (milk - amount_remaining > e) {
          printf("%.6f", amount_remaining);
          cout << " ";
          milk -= amount_remaining;
          ++remaining_bottle;
          amount_remaining = w;
        }
      }
      cout << endl;
    }
  }
  return 0;
}
