만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

진보적 NoSQL

면접 대비

시간 제한2초메모리 제한1024 MB

요약
Q개의 가입 요청을 순서대로 처리합니다. 이름이 비어 있으면 그대로 주고, 사용 중이면 쓰이지 않는 가장 작은 숫자를 뒤에 붙인 이름을 출력합니다.
난이도

쉬움10점 중 3점

유형
해시맵, 문자열
정답자
아직 제출이 없습니다

문제

<<Гигачат>>는 같은 이름의 진보적인 소셜 네트워크를 개발하는 진보적인 IT 회사이다. 최근 바냐가 이 회사에 입사했다. 그의 현재 업무는 새 사용자의 등록을 추적하는 데이터베이스를 구현하는 것이다. 바냐는 ICPC 쿼터파이널을 준비하고 있어서 여러분의 도움이 필요하다.

처음에 데이터베이스는 비어 있다. 일정 기간 동안 QQ명이 각각 이 데이터베이스에 요청을 한 건씩 보낸다. 각 요청은 영문 대소문자와 숫자로 이루어진 비어 있지 않은 문자열이며, 길이는 10을 넘지 않는다. 시스템에 그 문자열을 이름으로 가진 사용자가 없으면 그 이름으로 사용자를 등록한다. 있으면 이름 끝에 1을 붙이고, 그 이름의 사용자가 있는지 확인한다. 없으면 끝에 1이 붙은 이름으로 사용자를 등록한다. 이미 있으면 1 대신 2를 붙이고, 그 이름도 있으면 2 대신 3을 붙이는 식으로 계속한다. 각 요청에 대한 답은 사용자가 받은 이름이다.

입력

첫 줄에 요청의 개수 QQ (1≤Q≤1051 \le Q \le 10^5)가 주어진다. 요청은 시간 순서대로 주어진다.

이어지는 QQ개의 줄에는 각각 비어 있지 않은 문자열이 주어진다. 문자열은 영문 대소문자와 숫자만 포함하며, 길이는 10을 넘지 않는다.

출력

QQ개의 줄을 출력한다. ii번째 줄에는 ii번째 사용자가 받은 이름을 출력한다.

예제1

  1. 예제 1

    입력
    11
    fst
    lem
    fst
    fst
    margot
    Margot
    margot
    fst2
    lem1
    lem1
    lem
    
    예상 출력
    fst
    lem
    fst1
    fst2
    margot
    Margot
    margot1
    fst21
    lem1
    lem11
    lem2