#include <iostream>
#include <string>
#include <map>
using namespace std;
class username{
public:
username(string a = "0");
friend istream & operator >> (istream & in, username & a);
friend ostream & operator << (ostream & out, username & a);
// friend int isThere (int n, int a, username * base);
friend bool operator < (const username a, const username b);
string nick;
private:
};
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;
}
inline bool operator < (const username a, const username b){
if (a.nick<b.nick)
return 1;
else return 0;
}
int main()
{
std::ios::sync_with_stdio(false);
int n = 0;
cin >> n;
string s;
map < username,int > m;
while(n--){cin>>s;
if(m[s]++)
cout<<s<<m[s]-1;
else
cout<<"OK";
cout<<endl;}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c3RyaW5nPgojaW5jbHVkZSA8bWFwPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIHVzZXJuYW1lewpwdWJsaWM6CiAgICB1c2VybmFtZShzdHJpbmcgYSA9ICIwIik7CiAgICBmcmllbmQgaXN0cmVhbSAmIG9wZXJhdG9yID4+IChpc3RyZWFtICYgaW4sIHVzZXJuYW1lICYgYSk7CiAgICBmcmllbmQgb3N0cmVhbSAmIG9wZXJhdG9yIDw8IChvc3RyZWFtICYgb3V0LCB1c2VybmFtZSAmIGEpOwogICAvLyBmcmllbmQgaW50IGlzVGhlcmUgKGludCBuLCBpbnQgYSwgdXNlcm5hbWUgKiBiYXNlKTsKICAgIGZyaWVuZCBib29sIG9wZXJhdG9yIDwgKGNvbnN0IHVzZXJuYW1lIGEsIGNvbnN0IHVzZXJuYW1lIGIpOwoKICAgIHN0cmluZyBuaWNrOwpwcml2YXRlOgogICAgfTsKCnVzZXJuYW1lOjp1c2VybmFtZShzdHJpbmcgYSl7CiAgICBuaWNrID0gYTsKfQoKaXN0cmVhbSAmIG9wZXJhdG9yPj4oaXN0cmVhbSAmaW4sIHVzZXJuYW1lICZhKXsKCXN0cmluZyBuYW1lOwoJaW4gPj4gbmFtZTsKCWEgPSB1c2VybmFtZShuYW1lKTsKCXJldHVybiBpbjsKfQpvc3RyZWFtICYgb3BlcmF0b3I8PChvc3RyZWFtICZvdXQsIHVzZXJuYW1lICZhKXsKCW91dCA8PCBhLm5pY2s7CglyZXR1cm4gb3V0Owp9CgoKaW5saW5lIGJvb2wgb3BlcmF0b3IgPCAoY29uc3QgdXNlcm5hbWUgYSwgY29uc3QgdXNlcm5hbWUgYil7CiAgICBpZiAoYS5uaWNrPGIubmljaykKICAgICAgICByZXR1cm4gMTsKICAgIGVsc2UgcmV0dXJuIDA7Cn0KCmludCBtYWluKCkKewogICAgc3RkOjppb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBpbnQgbiA9IDA7CiAgICBjaW4gPj4gbjsKICAgIHN0cmluZyBzOwoKICAgIG1hcCA8IHVzZXJuYW1lLGludCA+IG07CiAgICB3aGlsZShuLS0pe2Npbj4+czsKICAgIGlmKG1bc10rKykKICAgICAgICBjb3V0PDxzPDxtW3NdLTE7CiAgICBlbHNlCiAgICAgICAgY291dDw8Ik9LIjsKICAgIGNvdXQ8PGVuZGw7fQoKICAgIHJldHVybiAwOwp9