AT_jsc2021_e Level K Palindrome

Description

[problemUrl]: https://atcoder.jp/contests/jsc2021/tasks/jsc2021_e 高橋くんは、すぬけくんに日頃の感謝を込めてレベル $ K $ の回文を送ることにしました。レベル $ L $ の回文 ( $ L $ は $ 0 $ 以上の整数 ) は以下のように定義されます。 - 文字列 $ s $ の左右を反転させたものを $ \mathrm{rev}(s) $ と表す。 - 文字列 $ s $ は $ s\ =\ \mathrm{rev}(s) $ であるとき、回文という。 - 空文字列と回文でない文字列はレベル $ 0 $ の回文である。 - 任意の**空でない**レベル $ L\ -\ 1 $ の回文 $ t $ に対して、$ t,\ \mathrm{rev}(t) $ をこの順に繋げた文字列はレベル $ L $ の回文である。 - 任意のレベル $ L\ -\ 1 $ の回文 $ t $ と任意の文字 $ c $ に対して、$ t,\ c,\ \mathrm{rev}(t) $ をこの順に繋げた文字列はレベル $ L $ の回文である。 いま、高橋くんは文字列 $ S $ を持っています。 $ S $ から $ 1 $ 文字選んで別の英小文字に書き換えるということを $ 0 $ 回以上繰り返すことで、$ S $ をちょうどレベル $ K $ の回文にすることができるか判定してください。また、できる場合は、$ S $ がちょうどレベル $ K $ の回文になるまでに必要な最小の書き換え回数を求めてください。

Input Format

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

Output Format

ちょうどレベル $ K $ の回文を作ることができる場合は、必要な最小の書き換え回数を出力せよ。 できない場合は、`impossible` と出力せよ。

Explanation/Hint

### 制約 - $ K $ は整数 - $ 0\