#include <bits/stdc++.h>   using namespace std;   int main() {     size_t n, w, m;     ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr),         cin >> n >> w >> m;     struct bottle_t {       size_t amount, id;     } bottle, poured;     stack<bottle_t> bottles, non_empty;     vector<bottle_t> cup[m];     for (bottle.amount = m, bottle.id = 1; bottle.id <= n; bottle.id++)       bottles.push(bottle);     for (size_t i = 0, 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 (size_t i = 0; i < m; i++, cout <<   n )       for (size_t j = 0, k = cup[i].size(); j < k; j++)         cout << cup[i][j].id <<     << fixed << setprecision(6)              << scale_factor * cup[i][j].amount <<    ;   }   