CF196D.The Next Good String

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

In problems on strings one often has to find a string with some particular properties. The problem authors were reluctant to waste time on thinking of a name for some string so they called it good. A string is good if it doesn't have palindrome substrings longer than or equal to dd .

You are given string ss , consisting only of lowercase English letters. Find a good string tt with length s|s| , consisting of lowercase English letters, which is lexicographically larger than ss . Of all such strings string tt must be lexicographically minimum.

We will call a non-empty string s[a ... b]=sasa+1... sbs[a ... b]=s_{a}s_{a+1}...\ s_{b} (1<=a<=b<=s)(1<=a<=b<=|s|) a substring of string s=s1s2... sss=s_{1}s_{2}...\ s_{|s|} .

A non-empty string s=s1s2... sns=s_{1}s_{2}...\ s_{n} is called a palindrome if for all ii from 11 to nn the following fulfills: si=sni+1s_{i}=s_{n-i+1} . In other words, palindrome read the same in both directions.

String x=x1x2... xxx=x_{1}x_{2}...\ x_{|x|} is lexicographically larger than string y=y1y2... yyy=y_{1}y_{2}...\ y_{|y|} , if either |x|>|y| and x1=y1,x2=y2,... ,xy=yyx_{1}=y_{1},x_{2}=y_{2},...\ ,x_{|y|}=y_{|y|} , or there exists such number rr (r<|x|,r<|y|) , that x1=y1,x2=y2,... ,xr=yrx_{1}=y_{1},x_{2}=y_{2},...\ ,x_{r}=y_{r} and x_{r+1}>y_{r+1} . Characters in such strings are compared like their ASCII codes.

输入格式

The first line contains integer dd ( 1<=d<=s1<=d<=|s| ).

The second line contains a non-empty string ss , its length is no more than 41054·10^{5} characters. The string consists of lowercase English letters.

输出格式

Print the good string that lexicographically follows ss , has the same length and consists of only lowercase English letters. If such string does not exist, print "Impossible" (without the quotes).

输入输出样例

  • 输入#1

    3
    aaaaaaa
    

    输出#1

    aabbcaa
    
  • 输入#2

    3
    zzyzzzz
    

    输出#2

    Impossible
    
  • 输入#3

    4
    abbabbbabbb
    

    输出#3

    abbbcaaabab
    
首页