10
4 2
7 4
2 6
2 5
4 8
10 3
2 9
9 1
5 10
 10
5 10
7 8
8 3
2 6
3 2
9 7
4 5
10 1
6 4
 4
4 1
4 3
4 2
 3
3 1
1 2
 9
1 2
1 3
1 4
1 5
1 6
6 7
6 8
8 9
 5
1 5
2 3
2 4
1 2
 8
6 1
4 7
4 8
8 5
7 6
4 3
4 2
 7
5 6
5 7
5 1
7 4
6 3
3 2
 3
1 3
3 2
 2
1 2
 5
5 4
4 3
3 1
5 2
 6
1 6
3 1
6 4
5 3
2 5
 11
8 9
2 7
1 11
3 2
9 1
8 5
8 6
5 4
4 10
8 3
 11
11 9
6 7
7 1
8 11
5 6
3 5
9 3
10 8
2 4
4 10
 12
12 6
6 7
8 11
4 8
10 4
12 3
2 10
6 2
12 9
4 1
9 5

-1
 9
 1
 1
 3
 3
 -1
 -1
 1
 1
 1
 5
 1
 5
 -1

import sys
range = xrange
input = raw_input

inp = [int(x) for x in sys.stdin.read().split()]; ii = 0

n = inp[ii]; ii += 1

coupl = [[] for _ in range(n)]
for _ in range(n - 1):
    u = inp[ii] - 1; ii += 1
    v = inp[ii] - 1; ii += 1

    coupl[u].append(v)
    coupl[v].append(u)

def root(x):
    P = [-1]*n
    P[x] = x
    bfs = [x]
    for node in bfs:
        for nei in coupl[node]:
            if P[nei] == -1:
                P[nei] = node
                bfs.append(nei)

    children = [[] for _ in range(n)]
    for j in reversed(range(1,n)):
        node = bfs[j]
        my_children = set(children[node])
        if len(my_children) > 1:
            return False, node
        else:
            if my_children:
                children[P[node]] += (i + 1 for i in my_children)
            else:
                children[P[node]].append(1)
    orig = set(children[x])
    if len(orig)>2:
        return False, x
    else:
        return True, sum(orig) + 1

suc, ans = root(0)
if not suc:
    suc, ans = root(ans)
    
finalsum = ans
if not suc:
    print -1
else:
    while finalsum & 1 and finalsum > 1:
        finalsum = (finalsum + 1)//2
    print finalsum - 1
