编程题
### 问题描述
在一个神奇的魔法世界中,小蓝是一位年轻的法师学徒。他在一座古老的魔法塔中学习魔法知识,并努力提升自己的能力。在这座塔中,有许多奇妙的魔法符文,它们蕴含着无限的力量。
有一天,小蓝发现了一种特殊的符文,它被称为「变形符文」。据说,这种符文可以改变物体的形态,使其变得与众不同。小蓝非常好奇,于是他决定研究这个符文并掌握它的力量。
变形符文的使用有一定的规则。小蓝获得了一个由字符 `a` 和 `b` 组成的字符串 $s$,其中每个字符都代表一个物体。他可以通过一系列的操作改变字符串中某个位置的字符,将 `a` 变为 `b`,或者将 `b` 变为 `a`。这些操作是相互影响的,每次操作都会改变其他位置的字符。
小蓝想知道,在每次操作后,字符串中最长的且字符相同子串的长度是多少。这样,他就能更好地理解变形符文的力量。
现在,请你帮助小蓝研究变形符文,解答他的问题!
### 输入格式
第一行输入两个整数 $n$ 和 $m$,表示字符串的长度和操作次数($1\le n,m\le 10^3$)。
第二行输入一个长度为 $n$ 的字符串 $s$,其中的字符只包含 `a` 和 `b`。
第三行输入 $m$ 个整数 $a_i$,表示每次操作要改变的字符位置($1\le a_i \le n$)。
### 输出格式
输出共 $m$ 行,每行一个整数,表示每次操作后最长的且字符相同子串的长度。
### 样例输入
```
3 2
aba
1 3
```
### 样例输出
```
2
3
```