n = int(input()) a = list(map(int, input().split())) from collections import defaultdict block_count = defaultdict(int) prev = None for num in a: if num != prev: block_count[num] += 1 prev = num first = {} last = {} for i in range(n): num = a[i] if num not in first: first[num] = i last[num] = i possible = True for c in block_count: bc = block_count[c] if bc == 1: continue elif bc == 2: if a[0] == c and a[-1] == c: continue else: possible = False break else: possible = False break if not possible: print(-1) else: valid = True for c in first: left = first[c] right = last[c] for i in range(left, right + 1): if a[i] != c: valid = False break if not valid: break if valid: print(0) else: print(1)