#codethanksfestival2018g. [code_thanks_festival_2018_g]Sum of Cards

[code_thanks_festival_2018_g]Sum of Cards

问题描述

高桥君最开始,在 NN 张卡片的正面上分别写上从 11NN 的整数,然后翻转并洗牌,再在每张卡片的背面写上从 11NN 的整数。

ii 张卡片(1iN1 \leq i \leq N)的正面写着数字 aia_i,背面写着数字 bib_i

高桥君希望将这 NN 张卡片中任意多张翻转,使得能够看到的整数的和尽可能大。

然而,这对高桥君来说太简单了。

为了让高桥君不感到悲伤,他决定在能看到至少 KK 种不同的整数的条件下,求出和的最大值。

请计算出这个和的最大值。

约束条件

  • 1KN50001 \leq K \leq N \leq 5000
  • 1ai,biN1 \leq a_i, b_i \leq N
  • 数组 a1,a2,...,aNa_1, a_2, ..., a_N 中包含 1,2,...,N1, 2, ..., N 的所有数字,并且每个数字仅出现一次。
  • 数组 b1,b2,...,bNb_1, b_2, ..., b_N 中包含 1,2,...,N1, 2, ..., N 的所有数字,并且每个数字仅出现一次。
  • 所有输入均为整数

输入

输入从标准输入中获取,并具有以下格式。

NN KK

a1a_1 a2a_2 ... aN1a_{N-1} aNa_N

b1b_1 b2b_2 ... bN1b_{N-1} bNb_N

输出

输出和的最大值。


示例 1

2 2
2 1
1 2

输出示例 1

3

有两张卡片,正面分别写着数字 1,2\\{1, 2\\},背面分别写着数字 2,1\\{2, 1\\}

可以将两张卡片都翻到正面,这样能够看到两个整数,和为 33


示例 2

2 1
2 1
1 2

输出示例 2

4

有两张卡片,正面分别写着数字 1,2\\{1, 2\\},背面分别写着数字 2,1\\{2, 1\\}

可以将两张卡片都翻到正面,这样能够看到整数 22,和为 44,这是最大的和。


示例 3

3 2
2 3 1
1 3 2

输出示例 3

7

有三张卡片,正面分别写着数字 2,3,1\\{2, 3, 1\\},背面分别写着数字 1,3,2\\{1, 3, 2\\}

可以将第一张卡片翻到正面,第三张卡片翻到正面,这样能够看到整数 1,2,31, 2, 3,和为 77,这是最大的和。