Buggy python submission (verdict: Time Limit Exceeded):
N, M = map(int, input().split())
P = []
Y = []
D = [[] for i in range(N)]
for i in range(M):
  p, y = map(int, input().split())
  P.append(p)
  Y.append(y)
  D[p-1].append(y)

ans = [None] * M
for i in range(len(D)):
  new_d = sorted(D[i])
  for j in range(len(new_d)):
    a = str(i+1).zfill(6)
    b = str(new_d.index(D[i][j])+1).zfill(6)
    n = Y.index(D[i][j])
    ans[n] = a+b
print(*ans, sep = '\n')

Fixed submission:
N, M = map(int, input().split())
D = [[] for i in range(N)]

for i in range(M):
  p, y = map(int, input().split())
  D[p-1].append((y, i)) #市ごとにリストに入れる．この時，元の順番をタプルの1番目の要素として入れておく

ans = [None]*M

for i, d in enumerate(D): #enumerateは要素の中身とインデックス番号を持ってこれる．print(i, d)で確認
  d.sort()
  for k, (y, j) in enumerate(d): #こちらも同様．(y, j)となっているため，yには年数が，jには元の順番の情報が入る
    ans[j] = str(i+1).zfill(6) + str(k+1).zfill(6) #ans[j]に12桁の認識番号を挿入

print(*ans, sep = '\n')

Buggy python submission (verdict: Time Limit Exceeded):
N, M = map(int, input().split())
P = []
Y = []
D = [[] for i in range(N)]
for i in range(M):
  p, y = map(int, input().split())
  P.append(p)
  Y.append(y)
  D[p-1].append(y)

for l in D:
  l.sort()

for i in range(M):
  a = str(P[i]).zfill(6)
  b = str(D[P[i]-1].index(Y[i])+1).zfill(6)
  print(a+b)

Fixed submission:
N, M = map(int, input().split())
D = [[] for i in range(N)]

for i in range(M):
  p, y = map(int, input().split())
  D[p-1].append((y, i)) #市ごとにリストに入れる．この時，元の順番をタプルの1番目の要素として入れておく

ans = [None]*M

for i, d in enumerate(D): #enumerateは要素の中身とインデックス番号を持ってこれる．print(i, d)で確認
  d.sort()
  for k, (y, j) in enumerate(d): #こちらも同様．(y, j)となっているため，yには年数が，jには元の順番の情報が入る
    ans[j] = str(i+1).zfill(6) + str(k+1).zfill(6) #ans[j]に12桁の認識番号を挿入

print(*ans, sep = '\n')

Buggy python submission (verdict: Time Limit Exceeded):
N, M = map(int, input().split())
P = []
Y = []
D = {}
for i in range(M):
  p, y = map(int, input().split())
  P.append(p)
  Y.append(y)
  if p in D:
    D[p].append(y)
  else:
    D[p] = [y]

for i in D.keys():
  D[i].sort()

for i in range(M):
  a = str(P[i]).zfill(6)
  b = str(D[P[i]].index(Y[i])+1).zfill(6)
  print(a+b)

Fixed submission:
N, M = map(int, input().split())
D = [[] for i in range(N)]

for i in range(M):
  p, y = map(int, input().split())
  D[p-1].append((y, i)) #市ごとにリストに入れる．この時，元の順番をタプルの1番目の要素として入れておく

ans = [None]*M

for i, d in enumerate(D): #enumerateは要素の中身とインデックス番号を持ってこれる．print(i, d)で確認
  d.sort()
  for k, (y, j) in enumerate(d): #こちらも同様．(y, j)となっているため，yには年数が，jには元の順番の情報が入る
    ans[j] = str(i+1).zfill(6) + str(k+1).zfill(6) #ans[j]に12桁の認識番号を挿入

print(*ans, sep = '\n')

Buggy python submission (verdict: Time Limit Exceeded):
N, M = map(int, input().split())
P = []
Y = []
D = {}
for i in range(M):
  p, y = map(int, input().split())
  P.append(p)
  Y.append(y)
  if p in D:
    D[p].append(y)
  else:
    D[p] = [y]

for p in D:
  D[p] = sorted(D[p])
answer = []

for i in range(M):
  a = str(P[i]).zfill(6)
  b = str(D[P[i]].index(Y[i])+1).zfill(6)
  print(a+b)

Fixed submission:
N, M = map(int, input().split())
D = [[] for i in range(N)]

for i in range(M):
  p, y = map(int, input().split())
  D[p-1].append((y, i)) #市ごとにリストに入れる．この時，元の順番をタプルの1番目の要素として入れておく

ans = [None]*M

for i, d in enumerate(D): #enumerateは要素の中身とインデックス番号を持ってこれる．print(i, d)で確認
  d.sort()
  for k, (y, j) in enumerate(d): #こちらも同様．(y, j)となっているため，yには年数が，jには元の順番の情報が入る
    ans[j] = str(i+1).zfill(6) + str(k+1).zfill(6) #ans[j]に12桁の認識番号を挿入

print(*ans, sep = '\n')