AT_abc032_b [ABC032B] 高橋君とパスワード

Description

[problemUrl]: https://atcoder.jp/contests/abc032/tasks/abc032_b 高橋君の会社には、秘密の金庫があります。この金庫にはパスワードをかけているのですが、高橋君はそのパスワードを忘れてしまいました。 しかし、幸運なことに、手元にはパスワードのヒントが以下のように書かれていました。 - パスワードは、この紙に書かれている文字列 $ s $ の長さ $ k $ の部分文字列(※)のどれかである。 高橋君は、ありうるパスワードを全部試せば金庫を開けられる!と喜びました。 しかし、文字列 $ s $ はとても長い可能性があるし、しかも同じ部分文字列が複数個文字列 $ s $ 中に存在する可能性もあります。明らかに、重複したパスワードを繰り返し試す必要はありません。 そこで、手動で全てのパスワードを試す前に、試す必要がある異なるパスワードの数がいくつあるかを数えることにしました。 あなたの仕事は、文字列 $ s $ の内容が与えられるので、試す必要がある異なるパスワードの数がいくつあるかを高橋君に教えてあげることです。 (※)文字列 $ s $ の「部分文字列」とは、文字列 $ s $ に含まれるある区間を取り出した文字列のことです。 例えば、`abc` の部分文字列として `a`,`b`,`c`,`ab`,`bc`,`abc` などが挙げられます。 `ac` や `ba` などは部分文字列ではないことに注意してください。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ s $ $ k $ - $ 1 $ 行目には、ヒントの紙に書かれている文字列 $ s\ (1≦|s|≦300) $ が与えられる。$ s $ は英小文字(`a`-`z`)のみから成る。$ |s| $ は文字列 $ s $ の長さを表す。 - $ 2 $ 行目には、パスワードとしてありうる整数 $ k\ (1≦k≦300) $ が与えられる。 $ k $ は $ |s| $ よりも大きいことがある。

Output Format

出力は以下の形式で標準出力に行うこと。 $ 1 $ 行目に、パスワードとして考えられる文字列の数を出力せよ。末尾の改行を忘れないこと。

Explanation/Hint

### Sample Explanation 1 パスワードとしてありうる部分文字列の集合は、{`ab`,`bc`,`ca`} です。 ### Sample Explanation 2 パスワードとしてありえる部分文字列は、`a` のみです。