N,M = map(int,input().split())
k = []
zyouken = []
for i in range(N):
    zyouken.append(0)
flag = 0
ans = ""
if M!= 0:
    #条件が1以上ある場合
    for i in range(M):
        #kに要素(条件)を追加する
        s,c = map(int,input().split())
        k.append([s,c])
    k.sort()
    for j in range(M):
        #条件について考察する
        if zyouken[k[j][0]-1] == 0:
            #条件がまだ定められてなければ
            zyouken[k[j][0]-1] = k[j][1]
        else:
            if zyouken[k[j][0]-1] != k[j][1]:
                #条件が定められていて、それがk[j][1]と異なるなら
                print(-1)
                flag += 1
                break
else:
    flag += 1
    print(0)
if flag == 0:
    #フラグが成立していなければ
    if (zyouken[0]) == 0:
        #条件の最初の桁が0なら
        print(-1)
    else:
        for i in range(len(zyouken)):
            ans += str(zyouken[i])
print(ans)