#agc007f. [agc007_f]Shik and Copying String

[agc007_f]Shik and Copying String

问题描述

#nck { width: 30px; height: auto; }

Shik 的工作非常无聊。在第 00 天,他的老板给了他一个长度为 NN 的字符串 S0S_0,它只包含小写英文字母。在第 ii 天,Shik 的工作是将字符串 Si1S_{i-1} 复制到字符串 SiS_i 中。我们用 S_i\[j\] 表示 SiS_i 的第 jj 个字母。

Shik 在这份工作中没有经验。每天,当他一边从第一个字母复制到最后一个字母时,他会犯错误。也就是说,他有时会意外地写下之前写过的相同的字母,而不是正确的字母。具体来说,S_i\[j\] 可以等于 S_{i-1}\[j\]S_{i}\[j-1\]。(注意,S_i\[1\] 总是等于 S_{i-1}\[1\]。)

给定字符串 S0S_0 和另一个字符串 TT。请确定最小的正整数 ii,使得 SiS_i 可以等于 TT。如果不存在这样的 ii,请输出 -1

约束条件

  • 1leqNleq1,000,0001 \\leq N \\leq 1,000,000
  • S0S_0TT 的长度都为 NN
  • S0S_0TT 只包含小写英文字母。

输入

输入以以下格式从标准输入给出:

NN S0S_0 TT

输出

输出最小的正整数 ii,使得 SiS_i 可以等于 TT。如果不存在这样的 ii,则输出 -1


示例 1

5
abcde
aaacc

输出 1

2

S0S_0 = abcdeS1S_1 = aacccS2S_2 = aaacc 是一种可能的序列,使得 S2=TS_2 = T


示例 2

5
abcde
abcde

输出 2

0

示例 3

4
acaa
aaca

输出 3

2

示例 4

5
abcde
bbbbb

输出 4

-1