Щасливі підпослідовності
Обмеження: 2 сек., 512 МіБ
Марічка любить щасливі рядки — непорожні рядки, що містять тільки
букви l
, u
, c
, k
,
y
.
У магазині продається рядок ss довжини nn. Зеник вирішив в ii-ту хвилину літа купити підрядок s[li..ri]s[li..ri] й утворити щасливий рядок, щоб подарувати його Марічці. Рядок ss є в магазині в багатьох екземплярах, тому Зеник щоразу купує підрядок з іншого екземпляра.
Для кожного купленого підрядка порахуйте, скільки унікальних щасливих рядків він може отримати з нього, видаливши деякі (можливо, жоден) символи.
Оскільки кількість унікальних щасливих підпослідовностей може бути великою, то виведіть її за модулем простого числа 109+7109+7.
Вхідні дані
У першому рядку задано два цілих числа nn і mm — довжина рядка в магазині та кількість хвилин, коли Зеник купував підрядки.
У другому рядку задано рядок ss довжини nn — рядок, що продається в магазині.
У наступних mm рядках задано по два цілих числа li,rili,ri — підрядок, який купив Зеник у магазині в ii-ту хвилину літа.
Вихідні дані
У кожному з mm рядків виведіть ціле число — кількість унікальних щасливих підпослідовностей у підрядку s[li..ri]s[li..ri] за модулем 109+7109+7.
Обмеження
1≤n,m≤1051≤n,m≤105,
1≤l≤r≤n1≤l≤r≤n,
рядок ss містить лише маленькі англійські літери.
Приклади
Вхідні дані (stdin) | Вихідні дані (stdout) |
---|---|
5 3 luuby 1 3 2 4 1 5 | 5 2 11 |
Примітки
Для підрядка s[1..3]s[1..3] є такі
унікальні підпослідовності: l
, u
,
lu
, uu
, luu
.
Для підрядка s[2..4]s[2..4] є такі
унікальні підпослідовності: u
, uu
.
Для підрядка s[1..5]s[1..5] є такі
унікальні підпослідовності: l
, u
,
y
, lu
, ly
, uu
,
uy
, luu
, luy
, uuy
,
luuy
.