using System;

namespace tst
{
    class Program
    {
        public static int n;
        public static void Res(int[] V)
        {
            for(int i=0; i<n; i++)
            {
                if (V[i] == -1) V[i] = 0;
            }
            if (V[0] == 0)
            {
                V[0] = 1;
                Kumitate(V);
            }
            else
            {
                Kumitate(V);
            }
        }
        public static void Kumitate(int[] V)
        {
            int val = 0;
            for(int i=n; i>0; i--)
            {
                val += V[n - i] * (int)Math.Pow(10, i-1);
            }
            Console.WriteLine(val);
        }
        public static void Main()
        {
            string[] In1 = Console.ReadLine().Split(' ');
            n = int.Parse(In1[0]);
            int[] V = new int[n];
            for(int i=0; i<n; i++)
            {
                V[i] = -1;//-1で初期化
            }
            int m = int.Parse(In1[1]);//ヒントの数
            bool flag = true;
            if (m != 0)
            {
                for (int i = 0; i < m; i++)
                {
                    string[] In2 = Console.ReadLine().Split(' ');
                    int s = int.Parse(In2[0]);
                    int c = int.Parse(In2[1]);
                    if (s == 1 && c == 0) flag = false;//一番左が0はNG
                    if (V[s - 1] == -1)
                    {
                        V[s - 1] = c;
                    }
                    else
                    {
                        if (V[s-1]==c) { }
                        else flag = false;
                    }
                }
            }
            if (flag)
            {
                Res(V);
            }
            else
            {
                Console.WriteLine(-1);
            }
        }
    }
}