题目描述

lagoon有一台n核心的处理器和2kn个进程,每条进程运行时仅占1个核心。他要把这2kn个进程分配到这n个核心中运行,每个核心都恰好分配2k条进程。

每条进程都有一个与其他进程不同的整数表示其优先级,并且声明了它是“急需处理”还是“可以稍后运行”。一个核心中的进程总是按照优先级降序执行。如果一条“急需处理”的进程是某个核心执行的前k条进程之一,或者一条“可以稍后运行”的进程是某个核心执行的后k条进程之一,那么我们称这条进程的要求是被满足的。

现在lagoon想在分配这2kn条进程后,使要求被满足的进程条数最多。你能帮帮他吗?

输入格式

第一行两个用空格隔开的整数k和n。

第二行2kn个整数,其中第i个数表示第i条进程的优先级。

第三行2kn个整数,如果第i个数是1则表示第i条进程“急需处理”,是0则表示“可以稍后运行”。

输出格式

输出一个整数,表示可以满足要求的进程的最多条数。

样例输入

3 2

15 14 12 11 8 7 6 5 4 3 2 1

1 1 0 1 0 1 0 0 0 1 1 0

样例输出

8

数据范围与约定

对于30%的数据,1<=2kn<=1000。

对于100%的数据,1<=2kn<=100000,优先级均为不超过1000000的正整数。