B - 高橋くんと文字列操作 Editorial /

Time Limit: 2 sec / Memory Limit: 256 MB

問題文

高橋くんは文字列 s を持っており、文字列 t を作りたいと思っています。 高橋くんは、文字列の末尾の 1 文字を先頭に追加し、末尾の 1 文字を削除するという操作を文字列 s に行うことで、文字列 s を文字列 t にしたいと考えています。

最小で何回この操作を行えば、文字列 s を文字列 t にできるでしょうか?最小の操作回数を出力するプログラムを書いてください。この操作では文字列 s を文字列 t に変換することができない場合、-1 と出力してください。


入力

入力は以下の形式で標準入力から与えられる。

s
t
  • 1 行目には、高橋くんが持っている文字列 s (1 ≦ \|s\| ≦ 1,000) が与えられる。ただし、 \|s\| は文字列 s の長さを表す。s は半角小文字アルファベットa-zのみからなる。
  • 2 行目には、高橋くんが作りたい文字列 t (1 ≦ \|t\| ≦ 1,000) が与えられる。t は半角小文字アルファベットa-zのみからなる。

出力

1 行目に、高橋くんが文字列 s を文字列 t に変換するための操作の最小回数を出力せよ。

行末の改行を忘れないこと。


入力例1

abcd
dabc

出力例1

1

abcd の末尾の文字を先頭に追加すると、

dabcd となり、ここから末尾の文字を削除すると、

dabc となります。

よって、1 回の操作で st に等しくなります。


入力例2

abcabcabc
bcabcabca

出力例2

2

問題文中の操作を s2 回行うと t と等しくなります。 5 回、8 回行っても t と等しくなりますが、最小のものを求める必要があります。


入力例3

aaa
a

出力例3

-1

入力例4

cab
cab

出力例4

0