#dwango2017finala. [dwango2017final_a]計算ドリル

[dwango2017final_a]計算ドリル

问题描述

尼可尼可电视台决定将简单的计算作为头脑体操。由于尼可尼可电视台并不是人类,所以它使用逆波兰表示法进行计算。

具体来说,对于由09-+组成的字符串SS,按照以下规则进行计算:

  • 首先,在初始时刻,假设它有一个空的、无限长的堆栈。然后,从字符串SS的开头开始查看字符。
  • 如果遇到09,直接入栈。
  • 如果遇到+,从栈中取出一个元素aa,再取出一个元素bb,然后将b+ab+a入栈。
  • 如果遇到-,从栈中取出一个元素aa,再取出一个元素bb,然后将bab-a入栈。
  • 最后,如果栈内只有一个元素,则它就是答案。
  • 如果栈内的元素数量不为1,或者在中途取出元素时栈为空,则说明SS不是一个正确的表达式。

尼可尼可电视台随意写了一个字符串SS。除了简单地计算之外,它决定解决以下问题:

  • 将这个字符串修改最多KK个字符,能否变成一个正确的表达式?如果可以,最大计算结果是多少?

然而,这太难了,所以请你帮助它解决。

约束条件

  • SS是由09-+组成的字符串。
  • 1S521 \leq |S| \leq 52
  • 0KS0 \leq K \leq |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+,可以得到最大答案。