Рядок \textbf{A} = a_1a_2\ldots a_n називається підрядком рядка \textbf{B} = b_1b_2\ldots b_m, якщо існує ціле число (1 \leq k \leq m-n+1) таке, що a_1 = b_k, a_2 = b_{k+1}, ..., a_n = b_{k+n-1}.
Рядок називається надрядком для рядка , якщо є підрядком .
Рядок \textbf{A} = a_1a_2\ldots a_n є лексикографічно меншим за рядок \textbf{B} = b_1b_2\ldots b_m, якщо існує таке ціле , що a_t = b_t для всіх 1 \leq t \leq k, і при цьому або a_{k+1} < b_{k+1}, або довжина дорівнює , а довжина більша за .
Задані рядки та . Знайдіть рядок, який є одночасно підрядком рядка і надрядком рядка . Якщо таких рядків декілька, виведіть найдовший. Якщо таких рядків максимальної довжини також декілька, виведіть з них лексикографічно найменший.
У першому рядку задано рядок (1 \leq |\textbf{S}| \leq 4000). У другому рядку задано рядок (1 \leq |\textbf{T}| \leq 4000). Обидва рядки складаються з малих латинських букв. Тут і позначають довжини рядків та відповідно.
Виведіть потрібний рядок або NO SOLUTION (без лапок), якщо такого рядка не існує.
Приклад 1