カエサルの数え上げ

2 secs 1024 MB
magurofly

問題


ストーリー


シーザー暗号を知っていますか?

シーザー暗号とは、文字列の各文字を、辞書順で同じだけずらしたものです。

例えば、 mojacoder つずらすと npkbdpefs になります。


高橋君は暗号化されたメッセージを青木君から受け取りました。

二人の間では秘密の文字列が共有されていて、青木君はメッセージに含まれる秘密の文字列の個数によって秘密の内容を表現します。

ただし、秘密の文字列はずらされている可能性があります。

問題文


長さが である文字列 が与えられます。

文字列 の中に のシフト は何個含まれていますか?

ここで、ある文字列 が文字列 のシフト であるとは、 かつ、ある が存在し、 すべての に対して、文字コードが であると定義します。

例えば MojaCoder のシフトは MojaCoder, NpkbDpefs, ... です。

制約


  • はどちらも バイト文字からなり、改行などの制御文字や文字コードが 以上の文字は含まない

入力


出力


答えを 行に出力せよ。

入出力例


入力例1
9 2
mojacoder
ac
出力例1
2

mojacoder には ac つ、 mo つ含まれています。 よって、 ac のシフトは合計 つ含まれています。

入力例2
44 2
The quick brown fox jumps over the lazy dog.
if
出力例2
3

ro つ、 he つ含まれます。

C++er 向けの情報: cin >> S では The までしか入力されないので、 std::getline(cin, S) を使いましょう。

入力例3
26 5
ABCDEFGHIJKLMNOPQRSTUVWXYZ
ABCDE
出力例3
22

に含まれる のシフトは互いに重なっている場合もあります。

Submit


Go (1.14)