珂朵莉喊你一声大佬
题号:NC14524
时间限制:C/C++/Rust/Pascal 2秒,其他语言4秒
空间限制:C/C++/Rust/Pascal 128 M,其他语言256 M
64bit IO Format: %lld

题目描述

有n种大佬,第i种大佬有ai
珂朵莉想让最少个数的一种大佬的个数最多
你可以创造m个任意种类的大佬,并且可以把一些大佬变成另一些大佬
x -> y意味着可以把任意个x类型的大佬变成y类型的大佬
一个大佬可以被转换多次
对于每个y,最多有一个x使得x -> y成立


输入描述:

第一行两个数n,m

之后一行,第i个数xi表示第i种大佬可以被哪种大佬转换得到

如果xi为-1表示这种大佬不可以被任何大佬转换得到

之后一行,第i个数ai表示第i种大佬的个数

输出描述:

输出一行一个数表示答案
答案即
你要求让最少个数的一种大佬的个数最多的方案
输出这个方案下最少个数的一种大佬的个数
示例1

输入

复制
5 5
-1 1 1 1 1 
4 5 1 3 2

输出

复制
3
示例2

输入

复制
10 10
-1 1 1 2 1 5 5 6 10 5 
6 1 7 1 7 1 10 5 1 1

输出

复制
4

备注:

对于100%的数据,n <=1000000 , m , ai <= 1000000000