#include <bits/stdc++.h>
int n, w, m;
double each, left;
int nowBottle;
double waterHave;
int ans[55][55];
int ansS[55];
double ansD[55][55];
int main() {
  int i, j;
  scanf("%d%d%d", &n, &w, &m);
  each = (double)(n * w) / m;
  nowBottle = 1;
  waterHave = (double)w;
  int count = 1;
  for (i = 1; i <= m; i++) {
    left = each;
    while (left > 0.0000000001) {
      if (left <= waterHave) {
        ans[i][++ansS[i]] = nowBottle;
        ansD[i][ansS[i]] = left;
        waterHave -= left;
        left = -0.0000000001;
        if (count >= 3) {
          printf("NO");
          return 0;
        }
      } else {
        ans[i][++ansS[i]] = nowBottle;
        ansD[i][ansS[i]] = waterHave;
        left -= waterHave;
        waterHave = 0;
      }
      if (waterHave <= 0.000000001) {
        nowBottle++;
        if (count >= 3) {
          printf("NO");
          return 0;
        }
        count = 1;
        waterHave = (double)w;
      }
    }
    if (waterHave - (double)w <= 0.0000000001 &&
        waterHave - (double)w >= -0.000000001) {
    } else {
      count++;
    }
  }
  printf("YES\n");
  for (i = 1; i <= m; i++) {
    for (j = 1; j <= ansS[i]; j++) {
      printf("%d %lf ", ans[i][j], ansD[i][j]);
    }
    printf("\n");
  }
  return 0;
}
