Дано два рядки і , що складаються з малих латинських літер.
Для непорожнього рядка позначимо через p_1<p_2<\ldots<p_k усі позиції початку його входжень у , а через q_1<q_2<\ldots<q_m — усі позиції початку його входжень у . Позиції нумеруються з .
Назвемо рядок синхронним, якщо k=m\ge 3 та існує ціле число , для якого
Інакше кажучи, усі входження в одному рядку можна зсунути на однакову кількість позицій, щоб вони збіглися з усіма його входженнями в іншому рядку. Зсув може бути додатним, від'ємним або нульовим і може бути різним для різних рядків .
Знайдіть кількість різних непорожніх синхронних рядків. Два рядки вважаються різними, якщо вони відрізняються довжиною або хоча б одним символом. Входження можуть перекриватися.
Перший рядок містить рядок , другий — рядок (1\le |s|,|t|\le 2\cdot 10^5). Обидва рядки складаються лише з малих латинських літер.
Виведіть одне ціле число — кількість різних непорожніх синхронних рядків.
Приклад 1
Приклад 2
Приклад 3
У першому прикладі підходять шість рядків: a, b, c, ab, bc, abc. Зокрема, abc входить у на позиціях , а в — на позиціях , тому для нього d=1.
У другому прикладі a входить у кожен рядок тричі, але на позиціях та . Одним зсувом сумістити ці набори неможливо. Інших рядків із щонайменше трьома входженнями в кожному рядку немає.
У третьому прикладі підходять рядки a, aa та aaa.
Підзадача ( балів): |s|,|t|\le 12.
Підзадача ( балів): |s|,|t|\le 100.
Підзадача ( балів): |s|,|t|\le 2000.
Підзадача ( балів): s=t.
Підзадача ( балів): \min(|s|,|t|)\le 200.
Підзадача ( балів): без додаткових обмежень.