(N, K), *ABs = readlines.map{|l| l.split.map(&:to_i)}
M = 10**9 + 7

@g = ABs.each_with_object(Array.new(N + 1){[]}){|(a, b), o| o[a] << b; o[b] << a}

s = [[1, 0, 0]]
d = []
res = 1
while !s.empty?
  v, d1, d2 = s.pop
  d[v] = true
  res = res * (K - d1 - d2) % M
  @g[v].each do |w|
    next if d[w]
    s << [w, 1, d1]
    d1 += 1
  end
end
puts res