N, K = gets.chomp.split.map(&:to_i)
P = gets.chomp.split.map(&:to_i)
C = gets.chomp.split.map(&:to_i)

def calc i, k, tmp_a=[0]
  if k == 0
    tmp_a[1..-1].max
  elsif k > 0
    next_i = P[i] - 1
    next_c = C[next_i]
    tmp_a.push (tmp_a.last + next_c)
    calc(next_i, k-1, tmp_a)
  end
end

sum = 0

a = K / N
b = C.sum
k = K % N

if k == 0
  k = N
end
tmp_a = []
N.times{ |i|
  tmp_a.push calc(i, k)
}
sum = tmp_a.max

if a > 0 && b > 0
  if k == N
    sum += (a - 1) * b
  else
    sum += (a - 0) * b
  end
end

puts sum
