固执
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

对于字符串S,如果不存在一种排列使得每一个位置排列前后的字符均不同,我们就将其定义以为固执串。
现在给定你一个由小写字母组成的字符集,请你构造出一个字符串使其每一个后缀都是固执串,并且保证字典序最小。

输入描述:

第一行一个整数n(字符串的长度)
第二行一个字符串s(给定的字符串)

输出描述:

如果可以成功的构造出,请先输出YES,然后将你构造出的字符串输出;
否则请输出NO

示例1

输入

复制
10
aababaacac

输出

复制
YES
ababacacaa
示例2

输入

复制
3
abc

输出

复制
NO

备注:

abc不是固执串(bca即可满足)
abb是固执串(对于其所有的排列我们都无法满足每一个位置前后的字符不同)