#dwango2017finala. [dwango2017final_a]計算ドリル

[dwango2017final_a]計算ドリル

問題文

ニコニコテレビちゃんは、頭の体操として簡単な計算をすることにしました。 ところでニコニコテレビちゃんは人間ではないので、逆ポーランド記法で計算をします。

具体的には、0 ~ 9, -, + からなる文字列 SS について、以下の規則に従い計算をします。

  • まず、最初の時点では空の、無限に長いスタックを 11 つ持っていると考える。そして、SS の文字を前から見ていく。
  • もし0 ~ 9が出てきたら、そのままスタックへ積む。
  • もし+が出てきたら、スタックから1個取り出し aa、もう1個取り出し bb とする。そして b+ab+a をスタックへ積む。
  • もし-が出てきたら、スタックから1個取り出し aa、もう1個取り出し bb とする。そして bab-a をスタックへ積む。
  • 最後に、スタックの中身が 11 個ならばそれが答えである
  • もし 11 個ではなかったり、途中で取り出そうとしたがスタックが空だったりした場合は SS は正しい式ではない。

ニコニコテレビちゃんは、適当に文字列 SS を書きました。 これに対してただ計算するだけではつまらないので、以下の問題を解くことにしました。

  • この文字列を KK 文字まで書き換えて、正しい式にできるか?また、出来るならば正しい式のうち、計算した答えの最大値はいくつか?

しかしこれは難しすぎたので、あなたが代わりに解いて助けてあげてください。

制約

  • SS は、0 ~ 9-+ からなる文字列である
  • 1S521 ≦ |S| ≦ 52
  • 0KS0 ≦ K ≦ |S|

入力

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

KK SS

出力

もし正しい式に出来ないならば NG と出力してください。 出来るならば OK と出力し、更に次の行に計算した答えの最大値を出力してください。


入力例 1

0
21+

出力例 1

OK
3

この式は、普通の記法で表すと2+1となります


入力例 2

1
21+

出力例 2

OK
11

29+に書き換えると、答えが最大になります


入力例 3

1
21-

出力例 3

OK
8

91-に書き換えると、答えが最大になります


入力例 4

0
1+1

出力例 4

NG

このような式は、逆ポーランド記法としては正しい式ではありません


入力例 5

3
1234567

出力例 5

OK
13

12+4+6+と書き換えると、答えが最大になります