import sys from collections import deque def main(): sys.setrecursionlimit(1 << 25) input = sys.stdin.read().split() idx = 0 N, K = int(input[idx]), int(input[idx+1]) idx +=2 edges = [[] for _ in range(N+1)] for _ in range(N-1): a = int(input[idx]) b = int(input[idx+1]) edges[a].append(b) edges[b].append(a) idx +=2 if K > N: print(-1) return depth = [0]*(N+1) visited = [False]*(N+1) q = deque() q.append(1) visited[1] = True order = [] while q: u = q.popleft() order.append(u) for v in edges[u]: if not visited[v]: visited[v] = True depth[v] = depth[u] +1 q.append(v) selected = [False]*(N+1) for i in range(K): selected[order[i]] = True children = [[] for _ in range(N+1)] parent = [0]*(N+1) visited = [False]*(N+1) q = [1] visited[1] = True while q: u = q.pop() for v in edges[u]: if not visited[v]: visited[v] = True parent[v] = u children[u].append(v) q.append(v) has_selected = [False]*(N+1) def dfs(u): if selected[u]: has_selected[u] = True for v in children[u]: dfs(v) if has_selected[v]: has_selected[u] = True dfs(1) ans =0 for u in range(1, N+1): for v in children[u]: if has_selected[v]: ans +=1 print(ans) if __name__ == "__main__": main()