#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
#include <numeric> // Tidak digunakan di versi ini, tapi bagus untuk sum
 
using namespace std;
 
void hitung_volume_donor_singkat() {
    int N, M; // N=desa, M=golongan
 
    // 1. Baca N (jumlah desa) dan M (jumlah golongan)
    cout << "N (desa) M (golongan): ";
    if (!(cin >> N >> M)) return;
 
    // 2. Baca Nama Golongan
    vector<string> nama_golongan(M);
    cout << "Nama " << M << " golongan (cth: A B O...): ";
    for (int i = 0; i < M; ++i) cin >> nama_golongan[i];
 
    // Total volume untuk setiap golongan darah
    vector<double> total_volume(M, 0.0);
 
    cout << "\nInput " << N << " desa, masing-masing " << M << " volume (ml):\n";
 
    // 3. Loop input volume per desa
    for (int d = 0; d < N; ++d) {
        cout << "Desa " << d + 1 << ": ";
        for (int g = 0; g < M; ++g) {
            double volume;
            if (cin >> volume) {
                total_volume[g] += volume;
            } else {
                cerr << "Error input. Program berhenti." << endl;
                return;
            }
        }
    }
 
    // 4. Output Hasil
    cout << fixed << setprecision(2);
    cout << "\n=== Total Volume per Golongan ===\n";
    for (int g = 0; g < M; ++g) {
        cout << nama_golongan[g] << ": " << total_volume[g] << " ml\n";
    }
    cout << "=================================\n";
}
 
int main() {
    hitung_volume_donor_singkat();
    return 0;
}