N,M=map(int,input().split())
S,C=[],[]
for _ in range(M):
    s,c=map(int,input().split())
    S.append(s)
    C.append(c)

# 数字の頭から設定していく．なんの制約もない場合は１か0．制約がある場合はその数字を制約が多重でかかっている場合は-1を出力して終了
min_num = [0 for _ in range(N)]
for i in range(1,N+1):
    if i in S:
        ind = S.index(i)
        restrict_num = C[ind]
        # もし頭に0を指定した場合はおかしいのでbreak
        if i == 1 and restrict_num == 0:
            min_num = -1
            break
        del(S[ind])
        del(C[ind])
        # もし仮にもう一度別のやつが！見つかったらおかしい
        if i in S:
            ind2 = S.index(i)
            restrict_num2 = C[ind2]
            if not restrict_num == restrict_num2:
                min_num = -1
                break

        min_num[i-1] = restrict_num
        continue

    if i == 1:
        min_num[i-1] = 1
    else:
        min_num[i-1] = 0

if min_num == -1:
    print(min_num)
else:
    min_num = map(str,min_num)
    print(''.join(min_num))
