Problem p02773 (python)

Fixed submission:
import sys
import math
import fractions
import bisect
import queue
import heapq
import collections
import itertools
sys.setrecursionlimit(4100000)

MOD = int(1e9+7)
PI = 3.14159265358979323846264338327950288
INF = 1e18

'''
1行のint=====================================
N, K = map(int, input().split())
N, M = map(int, input().split())
A, B = map(int, input().split())

H, W = map(int, input().split())

L, R = map(int, input().split())

1行のstring=================================
S, T = input().split()

1行の整数配列================================
P = list(map(int,input().split()))

A = list(map(int,input().split()))
B = list(map(int,input().split()))
C = list(map(int,input().split()))
D = list(map(int,input().split()))

L = list(map(int,input().split()))
R = list(map(int,input().split()))

T = list(map(int,input().split()))

改行あり整数==================================
X = []
Y = []
for i in range(N):
    x1,y1=[int(i) for i in input().split()]
    X.append(x1)
    Y.append(y1)

A = []
for i in range(N):
    a=int(input())
    A.append(a)

Pair = []
for i in range(N):
    x1,y1=[int(i) for i in input().split()]
    Pair.append((x1, y1))
    
2次元整数配列=====================================
A = []
for i in range(N):
    tmp = list(map(int,input().split()))
    A.append(tmp)


N行M列の初期化====================================
dp = [[VAL] * RETU for i in range(GYO)]

'''


N = int(input())
S = []
for i in range(N):
    s = input()
    S.append(s)
 

S.sort()

count = collections.Counter(S)

most = count.most_common()[0][1]

ans = []

for c in count.most_common():
    if c[1] == most:
        ans.append(c[0])

ans.sort()
for a in ans:
    print(a)

Buggy submission (verdict: Runtime Error):
import sys
import math
import fractions
import bisect
import queue
import heapq
from collections import deque
sys.setrecursionlimit(4100000)

MOD = int(1e9+7)
PI = 3.14159265358979323846264338327950288
INF = 1e18

'''
1行のint=====================================
N, K = map(int, input().split())

A, B = map(int, input().split())

H, W = map(int, input().split())

L, R = map(int, input().split())

1行のstring=================================
S, T = input().split()

1行の整数配列================================
P = list(map(int,input().split()))

A = list(map(int,input().split()))
B = list(map(int,input().split()))

D = list(map(int,input().split()))

L = list(map(int,input().split()))
R = list(map(int,input().split()))

T = list(map(int,input().split()))

改行あり整数==================================
X = []
Y = []
for i in range(N):
    x1,y1=[int(i) for i in input().split()]
    X.append(x1)
    Y.append(y1)

A = []
B = []
for i in range(N):
    x1,y1=[int(i) for i in input().split()]
    A.append(x1)
    B.append(y1)

Pair = []
for i in range(N):
    x1,y1=[int(i) for i in input().split()]
    Pair.append((x1, y1))


N行M列の初期化====================================
dp = [[VAL] * RETU for i in range(GYO)]

'''

N = int(input())
S = []
for i in range(N):
    s = input()
    S.append(s)

S.sort()

ans = []
now = 0
renzoku = 0
fin = 0

for i in range(N):
    if S[now] !=S[i]:
        renzoku = i-now
        if i == 1:
            ans.append(S[0])
            fin = 1


        if fin < renzoku:
            ans.clear()
            ans.append(S[i-1])
            now=i
            fin = renzoku
            renzoku = 0
        elif fin == renzoku:
            ans.append(S[i-1])
            now=i
            fin = renzoku
            renzoku = 0

    elif i == N-1:
        renzoku = i-now+1
        if fin < renzoku:
            ans.clear()
            ans.append(S[i-1])
            now=i
            fin = renzoku
            renzoku = 0
        elif fin == renzoku:
            ans.append(S[i-1])
            now=i
            fin = renzoku
            renzoku = 0

ans.sort()
for i in range(1, len(ans)):
    if ans[i] == ans[i-1]:
        ans.remove()


for a in ans:
    print(a)