|
セナ |
こんにちは、先生。私たち救急医学部は死体……失礼。患者を搬送しています。 |
|
セナ |
昨日、ちょっとした事故がありまして、救急医学部の部室へ運ぶ死……。 |
|
セナ |
……負傷者が出ました。幸い大事には至らず、皆さん、不味いソースを食べて、あまりの不味さに気を失っただけです。 |
|
セナ |
患者の手当てをするには、薬品を常に整備しておく必要があります。ただ……今日は患者が多く、まだ整備できていません。 |
|
セナ |
そこで先生、薬品の整備を手伝っていただけますか? |
1 行目に正の整数 が与えられる。
2 行目に 、、、 が空白なしで与えられる。文字はすべて英大文字である。
1 行目に、薬品の種類数の最小値を出力する。
2 行目に、整備を終えた後の薬品の並びを表す 、、、 を空白なしで出力する。薬品の種類は英大文字のみで表すこと。
セナの依頼で、棚に一列に並んだ 個の薬品を整備することになった。同じ棚にはできるだけ同じ種類の薬品が揃うように整理したい。現在、棚の 番目の薬品のラベルには英大文字 が書かれており、 は薬品の種類を表す。
薬品を整備するために、次の三つの操作をそれぞれ好きなだけ行うことができる。
ある操作で を交換した場合、それ以降の操作では更新後の を用いる。
整備を終えた後の薬品の種類数を最小にしたい。その最小値と、それを達成する最終的な薬品の並びを求めよう。
条件を満たす並びが複数ある場合は、どれを出力してもよい。