#include <iostream>
#include <string>
using namespace std;
class username{
public:
username(string a = "A");
friend istream & operator >> (istream & in, username & a);
friend ostream & operator << (ostream & out, username & a);
friend int isThere (int n, int a, username * base);
private:
string nick;
};
username::username(string a){
nick = a;
}
istream & operator>>(istream &in, username &a){
string name;
in >> name;
a = username(name);
return in;
}
ostream & operator<<(ostream &out, username &a){
out << a.nick;
return out;
}
int isThere (int n, int curPos, username * base){
int c = 0;
for(int i = 0; i < n; i++)
if(base[curPos].nick == base[i].nick)
c++;
return c;
}
int main()
{
std::ios::sync_with_stdio(false);
int n = 0;
cin >> n;
username* nBase = new username[n];
for(int i = 0; i<n; i++){
cin >> nBase [i];
int counter = isThere(i, i, nBase);
if(counter == 0)
cout << "OK" << endl;
else
cout << nBase[i] << counter << endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIHVzZXJuYW1lewpwdWJsaWM6CiAgICB1c2VybmFtZShzdHJpbmcgYSA9ICJBIik7CiAgICBmcmllbmQgaXN0cmVhbSAmIG9wZXJhdG9yID4+IChpc3RyZWFtICYgaW4sIHVzZXJuYW1lICYgYSk7CiAgICBmcmllbmQgb3N0cmVhbSAmIG9wZXJhdG9yIDw8IChvc3RyZWFtICYgb3V0LCB1c2VybmFtZSAmIGEpOwogICAgZnJpZW5kIGludCBpc1RoZXJlIChpbnQgbiwgaW50IGEsIHVzZXJuYW1lICogYmFzZSk7CnByaXZhdGU6CiAgICBzdHJpbmcgbmljazsKICAgIH07Cgp1c2VybmFtZTo6dXNlcm5hbWUoc3RyaW5nIGEpewogICAgbmljayA9IGE7Cn0KCmlzdHJlYW0gJiBvcGVyYXRvcj4+KGlzdHJlYW0gJmluLCB1c2VybmFtZSAmYSl7CglzdHJpbmcgbmFtZTsKCWluID4+IG5hbWU7CglhID0gdXNlcm5hbWUobmFtZSk7CglyZXR1cm4gaW47Cn0Kb3N0cmVhbSAmIG9wZXJhdG9yPDwob3N0cmVhbSAmb3V0LCB1c2VybmFtZSAmYSl7CglvdXQgPDwgYS5uaWNrOwoJcmV0dXJuIG91dDsKfQoKaW50IGlzVGhlcmUgKGludCBuLCBpbnQgY3VyUG9zLCB1c2VybmFtZSAqIGJhc2UpewogICAgaW50IGMgPSAwOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICBpZihiYXNlW2N1clBvc10ubmljayA9PSBiYXNlW2ldLm5pY2spCiAgICAgICAgICAgIGMrKzsKICAgIHJldHVybiBjOwp9CgppbnQgbWFpbigpCnsKICAgIHN0ZDo6aW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgaW50IG4gPSAwOwogICAgY2luID4+IG47CiAgICB1c2VybmFtZSogbkJhc2UgPSBuZXcgdXNlcm5hbWVbbl07CiAgICBmb3IoaW50IGkgPSAwOyBpPG47IGkrKyl7CiAgICAgICAgY2luID4+IG5CYXNlIFtpXTsKICAgICAgICBpbnQgY291bnRlciA9IGlzVGhlcmUoaSwgaSwgbkJhc2UpOwogICAgICAgIGlmKGNvdW50ZXIgPT0gMCkKICAgICAgICAgICAgY291dCA8PCAiT0siIDw8IGVuZGw7CiAgICAgICAgZWxzZQogICAgICAgICAgICBjb3V0IDw8IG5CYXNlW2ldIDw8IGNvdW50ZXIgPDwgZW5kbDsKICAgIH0KCXJldHVybiAwOwp9