#include <iostream>
#include <map> // Untuk menyimpan jumlah donor per desa
int main() {
int n; // Jumlah total data donor yang akan dibaca
// 1. Baca angka pertama, yaitu jumlah total donor (8)
std::cin >> n;
// 2. Gunakan std::map untuk menghitung donor.
// Kunci (key) adalah ID desa, Nilai (value) adalah jumlahnya.
std::map<int, int> jumlah_donor;
// 3. Ulangi sebanyak n kali (8 kali)
for (int i = 0; i < n; ++i) {
int id_desa;
// Baca angka pertama dari setiap data donor, ini adalah ID desa
std::cin >> id_desa;
// Berdasarkan analisis input Anda, data pertama memiliki 3 angka ekstra,
// dan 7 data sisanya masing-masing memiliki 2 angka ekstra.
// Kita perlu membaca angka-angka ini agar input stream berpindah
// ke ID desa berikutnya.
int dummy1, dummy2, dummy3;
if (i == 0) {
// Ini adalah data donor pertama (3, 3, 1, 150)
// Kita sudah baca '3' (id_desa), jadi kita baca 3 angka sisanya.
std::cin >> dummy1 >> dummy2 >> dummy3; // Membaca 3, 1, 150
} else {
// Ini adalah data donor ke-2 hingga ke-8 (misal: 1, 2, 250)
// Kita sudah baca '1' (id_desa), jadi kita baca 2 angka sisanya.
std::cin >> dummy1 >> dummy2; // Membaca 2, 250 (lalu 1, 300, dst.)
}
// 4. Tambahkan hitungan untuk desa yang sesuai
jumlah_donor[id_desa]++;
}
// 5. Cetak hasilnya sesuai format yang diminta
std::cout << "desa 1:" << jumlah_donor[1]
<< " ,desa 2:" << jumlah_donor[2]
<< ", desa 3:" << jumlah_donor[3]
<< std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWFwPiAvLyBVbnR1ayBtZW55aW1wYW4ganVtbGFoIGRvbm9yIHBlciBkZXNhCgppbnQgbWFpbigpIHsKICAgIGludCBuOyAvLyBKdW1sYWggdG90YWwgZGF0YSBkb25vciB5YW5nIGFrYW4gZGliYWNhCiAgICAKICAgIC8vIDEuIEJhY2EgYW5na2EgcGVydGFtYSwgeWFpdHUganVtbGFoIHRvdGFsIGRvbm9yICg4KQogICAgc3RkOjpjaW4gPj4gbjsKCiAgICAvLyAyLiBHdW5ha2FuIHN0ZDo6bWFwIHVudHVrIG1lbmdoaXR1bmcgZG9ub3IuCiAgICAvLyBLdW5jaSAoa2V5KSBhZGFsYWggSUQgZGVzYSwgTmlsYWkgKHZhbHVlKSBhZGFsYWgganVtbGFobnlhLgogICAgc3RkOjptYXA8aW50LCBpbnQ+IGp1bWxhaF9kb25vcjsKCiAgICAvLyAzLiBVbGFuZ2kgc2ViYW55YWsgbiBrYWxpICg4IGthbGkpCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGludCBpZF9kZXNhOwogICAgICAgIC8vIEJhY2EgYW5na2EgcGVydGFtYSBkYXJpIHNldGlhcCBkYXRhIGRvbm9yLCBpbmkgYWRhbGFoIElEIGRlc2EKICAgICAgICBzdGQ6OmNpbiA+PiBpZF9kZXNhOwoKICAgICAgICAvLyBCZXJkYXNhcmthbiBhbmFsaXNpcyBpbnB1dCBBbmRhLCBkYXRhIHBlcnRhbWEgbWVtaWxpa2kgMyBhbmdrYSBla3N0cmEsCiAgICAgICAgLy8gZGFuIDcgZGF0YSBzaXNhbnlhIG1hc2luZy1tYXNpbmcgbWVtaWxpa2kgMiBhbmdrYSBla3N0cmEuCiAgICAgICAgLy8gS2l0YSBwZXJsdSBtZW1iYWNhIGFuZ2thLWFuZ2thIGluaSBhZ2FyIGlucHV0IHN0cmVhbSBiZXJwaW5kYWgKICAgICAgICAvLyBrZSBJRCBkZXNhIGJlcmlrdXRueWEuCiAgICAgICAgCiAgICAgICAgaW50IGR1bW15MSwgZHVtbXkyLCBkdW1teTM7CgogICAgICAgIGlmIChpID09IDApIHsKICAgICAgICAgICAgLy8gSW5pIGFkYWxhaCBkYXRhIGRvbm9yIHBlcnRhbWEgKDMsIDMsIDEsIDE1MCkKICAgICAgICAgICAgLy8gS2l0YSBzdWRhaCBiYWNhICczJyAoaWRfZGVzYSksIGphZGkga2l0YSBiYWNhIDMgYW5na2Egc2lzYW55YS4KICAgICAgICAgICAgc3RkOjpjaW4gPj4gZHVtbXkxID4+IGR1bW15MiA+PiBkdW1teTM7IC8vIE1lbWJhY2EgMywgMSwgMTUwCiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgLy8gSW5pIGFkYWxhaCBkYXRhIGRvbm9yIGtlLTIgaGluZ2dhIGtlLTggKG1pc2FsOiAxLCAyLCAyNTApCiAgICAgICAgICAgIC8vIEtpdGEgc3VkYWggYmFjYSAnMScgKGlkX2Rlc2EpLCBqYWRpIGtpdGEgYmFjYSAyIGFuZ2thIHNpc2FueWEuCiAgICAgICAgICAgIHN0ZDo6Y2luID4+IGR1bW15MSA+PiBkdW1teTI7IC8vIE1lbWJhY2EgMiwgMjUwIChsYWx1IDEsIDMwMCwgZHN0LikKICAgICAgICB9CgogICAgICAgIC8vIDQuIFRhbWJhaGthbiBoaXR1bmdhbiB1bnR1ayBkZXNhIHlhbmcgc2VzdWFpCiAgICAgICAganVtbGFoX2Rvbm9yW2lkX2Rlc2FdKys7CiAgICB9CgogICAgLy8gNS4gQ2V0YWsgaGFzaWxueWEgc2VzdWFpIGZvcm1hdCB5YW5nIGRpbWludGEKICAgIHN0ZDo6Y291dCA8PCAiZGVzYSAxOiIgPDwganVtbGFoX2Rvbm9yWzFdIAogICAgICAgICAgICAgIDw8ICIgLGRlc2EgMjoiIDw8IGp1bWxhaF9kb25vclsyXSAKICAgICAgICAgICAgICA8PCAiLCBkZXNhIDM6IiA8PCBqdW1sYWhfZG9ub3JbM10gCiAgICAgICAgICAgICAgPDwgc3RkOjplbmRsOwoKICAgIHJldHVybiAwOwp9