mod = 10**9 + 7 def combination(n, r): res = 1 t = r - 1 while t >= 0: res = res * (n - t) // (r - t) t -= 1 return res def main(): n = int(input()) assert 1 <= n <= 10**5 graph = [[] for _ in range(n)] for _ in range(n - 1): a, b = map(int, input().split()) assert 1 <= a <= n assert 1 <= b <= n graph[a - 1].append(b - 1) graph[b - 1].append(a - 1) if n == 1: print(1) exit() leaf_cnt = len(list(filter(lambda x: len(x) == 1, graph[1:]))) print(combination(n - 1, leaf_cnt-1) * combination(n - 2, leaf_cnt - 1) // leaf_cnt % mod) if __name__ == "__main__": main()