Габріель працює у відомій компанії. Робота не дуже складна, але займає багато часу. В основному, Габріель шукає певну інформацію в одній книжці й копіює її до іншої. Габріелю байдуже, кому потрібні результати; головне, що роботу добре оплачують. Габріель нещодавно приєднався до компанії, тож він працює старанно й до кінця дня дуже втомлюється. Наприкінці дня йому здається, що всі символи в книжці зливаються в один довгий рядок, і всі ці цінні дані стають просто одним довгим рядком, але він змушений працювати з ним... Може, начальник помітить, як завзято працює Габріель, і підвищить його...
Але... О ні... Поки Габріель мріяв, він забув, що саме мав шукати в першій книжці. Після перерви й чашки чаю "Lipton" він згадав кілька речей. По-перше, він пригадав, що мав шукати у першій книжці деякий рядок. По-друге, він згадав, що мав записати позиції, у яких цей рядок зустрічається, до другої книжки, і що вже всі ці позиції записані.
Вхідний файл містить кілька тестів. Опис кожного тесту починається з натуральних чисел (1 \le n \le 1000000) — кількість символів у першій книжці — та (1 \le k \le n) — кількість позицій, у яких Габріель уже знайшов входження шуканого рядка в тексті (тобто кількість чисел у другій книжці). Друга лінія опису тесту містить текст з першої книжки — послідовність символів із ASCII-кодами більшими за . Третя лінія опису тесту містить номерів позицій, які були записані у другій книжці.
Рядок із n=k=0 означає кінець тестів; цей тест і усі дані після нього не слід обробляти.
Для кожного тесту виведіть один рядок. Якщо існує підрядок, який зустрічається у тексті рівно в тих позиціях, що наведені у другій книжці, виведіть один рядок "Correct. Length = x..y.", де і — мінімальна та максимальна можлива довжина шуканого рядка. Якщо такого розв'язку не існує, виведіть один рядок "Mistake."
Приклад 1