n, k = gets.chomp.split.map(&:to_i)
p = gets.chomp.split.map(&:to_i)
c = gets.chomp.split.map(&:to_i)
m = c.max

res = 0
if k >= n
  res += c.inject(:+) * (k / n)
  k %= n
end

dp = []
n.times do |u|
  cur = u
  t = []
  k.times do |i|
    cur = p[cur] - 1
    t << (t[-1] || 0) + c[cur]
  end
  dp << t.max || 0
end
puts res + dp.max