logo AlgoBeat OnlineJudge
登录 注册

#215160. [UOI 2020 II Stage] 又是邻居

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

邻居们又在找谢别克的麻烦,并给他想出了新的挑战。这次他们有一段长度为 的线段。邻居们把谢别克放在了坐标 处,并要求他跳到坐标为 的点。

但谢别克有个问题。他只能向前跳跃长度 。然而邻居们决定进一步限制他。他们给了他一个长度为 、由小写拉丁字母组成的字符串 。谢别克可以向前跳跃长度 (),当且仅当在字符串 中存在一个子串,满足以下条件:

  • 该子串的长度为
  • 子串中的所有字母都相同。
  • 在子串的左侧,要么是一个不同于子串字母的字符,要么不存在任何字符(即子串位于字符串边缘)。
  • 在子串的右侧,要么是一个不同于子串字母的字符,要么不存在任何字符。

如果字符串 可以通过从 的开头删除若干个(可以是零个或全部)字符,并从结尾删除若干个(可以是零个或全部)字符得到,则称 的子串。

例如,假设字符串为 aabaaabbcbbbebbab 且 。那么该字符串中有多个子串符合限制条件:(aa)baaa(bb)cbbbe(bb)ab。因此在这种情况下,可以跳跃长度为 。此外,该字符串也允许跳跃长度为 。而字符串 ebbbcedddd 只允许跳跃长度

谢别克需要仅使用允许的跳跃长度,从点 跳到坐标为 的点,并且使用最少的跳跃次数。假设你就是谢别克,请计算这个最少的跳跃次数。

请注意,谢别克需要恰好跳到坐标为 的点,而不是

输入格式

第一行包含一个整数 () —— 谢别克需要跳跃的线段长度。

第二行包含一个整数 () —— 邻居给出的字符串长度。

第三行包含一个长度为 的字符串 ,由小写字母组成 —— 邻居给出的字符串。

输出格式

输出一个整数 —— 谢别克为了从坐标为 的点跳到坐标为 的点所需的最少跳跃次数。如果他无法完成,则输出

样例

样例输入 1

4
5
acccz

样例输出 1

2

样例输入 2

11
18
bbbccccdddbcggggga

样例输出 2

5

样例输入 3

10
5
zzzzz

样例输出 3

-1

数据范围与提示

样例说明

  • 谢别克可以跳跃 。一种可能的跳跃方案是
  • 谢别克可以跳跃 。一种可能的跳跃方案是
  • 谢别克完全无法跳跃,因为唯一由相同字母组成的子串长度为

翻译由 DeepSeek V3 完成