B. 扑克牌 (poker)

内存限制:256 MiB 时间限制:1000 ms 输入文件:poker.in 输出文件:poker.out
题目类型:传统 评测方式:文本比较

题目描述

一天,cyl 和 lsh 在玩扑克牌。他们玩的是一种叫做“接竹竿”的游戏。

游戏规则是:一共有 张牌,每张牌上有一个花色 和一个点数 ,花色不超过 种。将这些牌依次放入一列牌的末端。若放入之前这列牌中已有与这张牌花色相同的牌,你可以选择将这张牌和任意一张花色相同的牌之间的所有牌全部取出队列(包括这两张牌本身),并得到与取出的所有牌点数和相同的分数。现在已知 lsh 把这 张牌放入队列的顺序,求她最多能得多少分。

输入顺序即为 lsh 放入队列的顺序。即, 表示第 张放入的牌的花色, 表示第 张放入的牌的点数。

请注意,如果你知道类似的纸牌游戏,请尤其仔细地阅读规则,以免因为理解题意错误而出现不必要的问题。

输入格式

第一行两个整数

第二行, 个整数 表示花色,满足

第三行, 个整数 表示点数。

输出格式

输出一行一个整数,表示最多能得到的分数。

样例

样例 1 输入

7 3
1 2 1 2 3 2 3
1 2 1 2 3 2 3

样例 1 输出

13

样例 1 解释

第 1 步,向队列加入 。现在的队列:

第 2 步,向队列加入 。现在的队列:

第 3 步,向队列加入 。现在的队列:

第 4 步,向队列加入 ,取出 。现在的队列:

第 5 步,向队列加入 。现在的队列:

第 6 步,向队列加入 。现在的队列:

第 7 步,向队列加入 ,取出 。现在的队列:

样例 2 输入

18 5
5 2 3 5 1 3 5 2 1 4 2 4 5 4 1 1 1 5
8 2 7 6 10 8 10 9 10 2 4 7 7 7 7 9 7 3

样例 2 输出

123

数据范围与提示

对于 的数据,

对于 的测试数据,满足:

另有 的测试数据,满足:

另有 的测试数据,满足:

另有 的测试数据,满足:

另有 的测试数据,满足:

另有 的测试数据,满足: