#include <bits/stdc++.h>   using namespace std;   long long intersect(long long l1, long long r1, long long l2, long long r2) {     long long l = max(l1, l2);     long long r = min(r1, r2);     return max(r - l, 0LL);   }   int gcd(int a, int b) { return b == 0 ? a : gcd(b, a % b); }   int main() {     long long n, m;     double w;     cin >> n >> w >> m;     if (m > n * 2) {       cout <<  NO n ;       return 0;     }     if (n >= m) {       cout <<  YES n ;       for (int i = 0, j = 0; j < m;) {         while ((i + 1) * m <= j * n) i++;         if (i < n) {           long long z = intersect(i * m, (i + 1) * m, j * n, (j + 1) * n);           if (z > 0) printf( %d %f  , i + 1, w * z / m);         }         if ((i + 1) * m <= (j + 1) * n)           i++;         else {           cout <<   n ;           j++;         }       }       return 0;     }     int d = gcd(n, m);     n /= d, m /= d;     if (m != n + 1) {       cout <<  NO n ;       return 0;     }     cout <<  YES n ;     for (int h = 0; h < d; h++)       for (int j = 0; j < m; j++) {         if (j > 0) printf( %lld %f  , h * n + j, w * j / m);         if (j < m - 1) printf( %lld %f  , h * n + j + 1, w * (m - 1 - j) / m);         printf(  n );       }     return 0;   }   