#jag2016secretspringd. [jag2016secretspring_d]インビジブル

[jag2016secretspring_d]インビジブル

问题描述

你和朋友想要玩一个名为"Invisible"的卡片游戏。这个游戏使用两种类型的卡片,分别是"得分卡"和"干扰卡"。每个得分卡上都写着一个正数值。这个卡片游戏的规则如下:

  • 游戏由两名玩家,玩家1和玩家2进行。游戏从玩家1的回合开始。
  • 场上有一个堆栈和两副牌组。堆栈由两名玩家放置的卡片组成。每个玩家持有的牌组由他们持有的得分卡和干扰卡组成。玩家可以随时查看自己或对手牌组中的卡片顺序。在游戏开始时,堆栈中没有任何卡片。
  • 两名玩家轮流执行以下两个动作之一,但只能执行一次:
    • 将自己牌组的顶部卡片放在堆栈的顶部。但是,当自己的牌组中没有卡片时,不能执行此操作。
    • 跳过自己的回合。
  • 当玩家跳过回合时,执行以下处理:
    • 每位玩家获得满足以下两个条件的堆栈中所有得分卡:
      1. 它是玩家自己放置的得分卡。
      2. 它在所有对手干扰卡之上(如果堆栈中没有对手的干扰卡,玩家将获得他放置在堆栈上的所有卡片)。
    • 删除堆栈中的所有卡片。

如果两名玩家连续跳过回合并且没有卡片在堆栈中,游戏结束。每位玩家的最终分数是他们获得的得分卡上写的数值的总和。

每位玩家都会选择使得玩家1的分数减去玩家2的分数最大化的行动。你的任务是计算在给定每位玩家的牌组情况下,当两位玩家采取最优行动时,玩家1的分数与玩家2的分数之差。


输入

输入是一个单一测试用例,具有以下格式:

nn mm
a_1a\_1 a_2a\_2 dots\\dots a_na\_n
b_1b\_1 b_2b\_2 dots\\dots b_mb\_m

第一行包含一个正整数nnmm,表示每个玩家的牌组中的卡片数量(1n,m501 \le n, m \le 50)。第二行包含nn个整数,a_ia\_i表示玩家1牌组中第ii张卡片(1in1 \le i \le n)。a_ia\_i的取值范围是111,000,0001,000,000,或者1-1。第三行包含mm个整数,b_jb\_j表示玩家2牌组中第jj张卡片(1jm1 \le j \le m)。b_jb\_j的取值范围是111,000,0001,000,000,或者1-1。当a_ia\_ib_jb\_j是正整数时,它们表示得分卡;当a_ia\_ib_jb\_j1-1时,它们表示干扰卡。

输出

输出两位玩家采取最优行动时的(玩家1得分)(玩家2得分)(\text{玩家1得分}) - (\text{玩家2得分})


样例输入1

2 2
100 -1
200 300```

### 样例输出1

```plain
-100```