# Пусть задана строка s. Назовем ее k-ой (k > 0) степенью s^k строку s^k = sss (k раз).
# Например, третьей степенью строки abc является строка аbсаbсаbс.
# Корнем k степени из строки s называется такая строка t (если она существует), что t^k = s.
# Ваша задача состоит в том, чтобы написать программу, находящую степень строки или корень из нее.
# Формат входных данных
# На вход программе подается 2 строки. Первая содержит строку S,
# вторая - степень k. Отрицательная степень означает взятие корня соответствующей степени.
# Формат выходных данных
# Вывести строку, являющуюуся ответом на задачу.
# Если такой строки нет, то нужно вывести 'NO SOLUTION' (без кавычек).

line = input()

k = int(input())

if k > 0:
    # Если степень > 0, выводим строку k раз:
    for i in range(k):
        print(line, end="")

elif k < 0:
    # Если степень отрицательная и длина строки
    # не делится на k без остатка, решения не существует.
    if len(line) % -k != 0:
        print("NO SOLUTION")

    else:
        # Если строка делится на k без остатка,
        # извлекаем соответствующий срез и умножаем на k.
        segment_lengh = len(line) // -k
        segment = line[:segment_lengh]
        segment_by_k = segment * (-k)

        # Если сконструированная из среза умножением на k строка
        # идентична исходной, выводим этот срез.
        if segment_by_k == line:
            print(segment)

        # Если строки не совпадают, решения не существует.
        else:
            print("NO SOLUTION")
