#agc048a. [agc048_a]atcoder < S

[agc048_a]atcoder < S

問題文

英小文字からなる文字列 SS が与えられます. すぬけくんは,SS隣り合う 22 文字をスワップするという操作を行うことができます. 例えば,S=S=agc なら,11 回の操作で,SSgac (ag をスワップ) もしくは acg (gc をスワップ) に変換できます.

すぬけくんはこの操作を 00 回以上繰り返し, 辞書順で atcoder <S<S となるようにしたいです.

辞書順で x<yx< y の定義

文字列 x,yx,y が辞書順で x<yx< y であるとは,以下のうちいずれかの条件を満たすことを意味します.

  • ある整数 ii (1leqileqmathrmmin(x,y)1 \\leq i \\leq \\mathrm{min}(|x|,|y|)) が存在して,x,yx,y は先頭の i1i-1 文字が一致しており,かつ, xxii 文字目は yyii 文字目よりアルファベット順で真に小さい.
  • x<y|x|< |y| であり,yy の先頭の x|x| 文字は xx と等しい.

目標が達成可能かどうか判定し,可能な場合は必要な操作回数の最小値を求めてください.

11 つの入力ファイルにつき,TT 個のテストケースを解いてください.

制約

  • 1leqTleq1001 \\leq T \\leq 100
  • 1leqSleq10001 \\leq |S| \\leq 1000
  • SS は英小文字からなる文字列.

入力

入力は以下の形式で標準入力から与えられる. 入力の 11 行目は以下のとおりである.

TT

そして,TT 個のテストケースが続く. これらはそれぞれ以下の形式で与えられる.

SS

出力

各テストケースについて,目標が達成不可能な場合は \-1\-1,可能な場合は必要な操作回数の最小値を出力せよ. 各テストケースごとに改行せよ.


入力例 1

3
atcodeer
codeforces
aaa

出力例 1

1
0
-1
  • 11 番目のテストケース: 例えば,末尾の 22 文字をスワップすることで,S=S=atcodere \> atcoder となります.
  • 22 番目のテストケース: 操作を行うまでもなく,S=S=codeforces \> atcoder です.
  • 33 番目のテストケース: どのように操作を行っても S>S> atcoder にはなりません.