#include <iostream>
 
int main() {
    int jumlah_donasi, jumlah_desa, jumlah_gol_darah;
 
    // Membaca input data pertama
    std::cin >> jumlah_donasi >> jumlah_desa >> jumlah_gol_darah;
 
    // Mendeklarasikan array untuk menyimpan jumlah pendonor per desa
    // Ukuran array adalah jumlah_desa + 1 untuk memudahkan akses dengan indeks desa
    int pendonor_per_desa[jumlah_desa + 1] = {0};
 
    // Membaca data setiap donasi dan menghitung jumlah pendonor per desa
    for (int i = 0; i < jumlah_donasi; ++i) {
        int desa, gol_darah, jumlah;
        std::cin >> desa >> gol_darah >> jumlah;
        pendonor_per_desa[desa]++;
    }
 
    // Mencetak hasil
    for (int i = 1; i <= jumlah_desa; ++i) {
        std::cout << "desa " << i << " : " << pendonor_per_desa[i] << std::endl;
    }
 
    return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKSB7CiAgICBpbnQganVtbGFoX2RvbmFzaSwganVtbGFoX2Rlc2EsIGp1bWxhaF9nb2xfZGFyYWg7CgogICAgLy8gTWVtYmFjYSBpbnB1dCBkYXRhIHBlcnRhbWEKICAgIHN0ZDo6Y2luID4+IGp1bWxhaF9kb25hc2kgPj4ganVtbGFoX2Rlc2EgPj4ganVtbGFoX2dvbF9kYXJhaDsKCiAgICAvLyBNZW5kZWtsYXJhc2lrYW4gYXJyYXkgdW50dWsgbWVueWltcGFuIGp1bWxhaCBwZW5kb25vciBwZXIgZGVzYQogICAgLy8gVWt1cmFuIGFycmF5IGFkYWxhaCBqdW1sYWhfZGVzYSArIDEgdW50dWsgbWVtdWRhaGthbiBha3NlcyBkZW5nYW4gaW5kZWtzIGRlc2EKICAgIGludCBwZW5kb25vcl9wZXJfZGVzYVtqdW1sYWhfZGVzYSArIDFdID0gezB9OwoKICAgIC8vIE1lbWJhY2EgZGF0YSBzZXRpYXAgZG9uYXNpIGRhbiBtZW5naGl0dW5nIGp1bWxhaCBwZW5kb25vciBwZXIgZGVzYQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBqdW1sYWhfZG9uYXNpOyArK2kpIHsKICAgICAgICBpbnQgZGVzYSwgZ29sX2RhcmFoLCBqdW1sYWg7CiAgICAgICAgc3RkOjpjaW4gPj4gZGVzYSA+PiBnb2xfZGFyYWggPj4ganVtbGFoOwogICAgICAgIHBlbmRvbm9yX3Blcl9kZXNhW2Rlc2FdKys7CiAgICB9CgogICAgLy8gTWVuY2V0YWsgaGFzaWwKICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGp1bWxhaF9kZXNhOyArK2kpIHsKICAgICAgICBzdGQ6OmNvdXQgPDwgImRlc2EgIiA8PCBpIDw8ICIgOiAiIDw8IHBlbmRvbm9yX3Blcl9kZXNhW2ldIDw8IHN0ZDo6ZW5kbDsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==