틀릴시 빤스런


def prefix(s):
pi = [0] * len(s)
for i in range(1, len(s)):
j = pi[i - 1]
while j > 0 and s[i] != s[j]:
j = pi[j - 1]
if s[i] == s[j]:
j += 1
pi[i] = j
return pi

def min_period(s):
if not s:
return ""
pi = prefix(s)
p = len(s) - pi[-1]
return s[:p] if len(s) % p == 0 else s

def free_ab_monoid(strings):
minimal_periods = {min_period(s) for s in strings if s}
return len(minimal_periods) <= 1

n = int(input("Enter number of strings: "))
strings = [input("Enter string: ").strip() for _ in range(n)]
print("true" if free_ab_monoid(strings) else "false")