#include <bits/stdc++.h>
long long int gcd(long long int a, long long int b) {
  long long int c;
  while (1) {
    if (!b) return a;
    c = a % b;
    a = b;
    b = c;
  }
}
using namespace std;
int main() {
  double w;
  long long int x, y, x1, y1, n, m, B[55] = {0}, k;
  int c;
  cin >> n >> w >> m;
  x = 1;
  y = 1;
  c = 1;
  for (int i = 0; i < m; i++) {
    x1 = n;
    y1 = m;
    while (x1 * y > y1 * x) {
      B[c]++;
      c++;
      x1 = x1 * y - x * y1;
      y1 = y1 * y;
      k = gcd(x1, y1);
      x1 /= k;
      y1 /= k;
      x = 1;
      y = 1;
    }
    x = y1 * x - x1 * y;
    y = y1 * y;
    k = gcd(x, y);
    x /= k;
    y /= k;
    B[c]++;
    if (x == 0) {
      x = 1;
      y = 1;
      c++;
    }
  }
  for (int i = 1; i <= n; i++)
    if (B[i] > 2) {
      printf("NO\n");
      return 0;
    }
  printf("YES\n");
  x = 1;
  y = 1;
  c = 1;
  for (int i = 0; i < m; i++) {
    x1 = n;
    y1 = m;
    while (x1 * y > y1 * x) {
      B[c]++;
      x1 = x1 * y - x * y1;
      y1 = y1 * y;
      k = gcd(x1, y1);
      x1 /= k;
      y1 /= k;
      printf("%d %lf ", c, ((double)x * w) / (double)y);
      c++;
      x = 1;
      y = 1;
    }
    x = y1 * x - x1 * y;
    y = y1 * y;
    k = gcd(x, y);
    printf("%d %lf ", c, ((double)x1 * w) / (double)y1);
    x /= k;
    y /= k;
    B[c]++;
    if (x == 0) {
      x = 1;
      y = 1;
      c++;
    }
    printf("\n");
  }
  return 0;
}
