import sys readline = sys.stdin.readline N,K = map(int,readline().split()) if N < K: print(-1) exit(0) G = [[] for i in range(N)] for _ in range(N - 1): a,b = map(int,readline().split()) G[a - 1].append(b - 1) G[b - 1].append(a - 1) # bfsで周辺の頂点を見ていき、初めて見た場所であれば距離をansに加算 # 追加した頂点数がKになったら終了 from collections import deque q = deque([]) q.append([0, 0, -1]) ans = 0 while q: v, d, p = q.popleft() ans += d K -= 1 if K == 0: print(ans) break for child in G[v]: if child == p: continue q.append([child, d + 1, v])