process.stdin.resume();
process.stdin.setEncoding('utf8');

// 標準入力取込
var g_input = '';
process.stdin.on('data', function(chunk) {
    g_input += chunk;
});
process.stdin.on('end', function() {
    main(g_input.split(/\r?\n/));
});

// 解答
function main(inputs){

    // 桁数
    var digit = Number(inputs[0].split(" ")[0]);
    // 入力した組み合わせ数
    var conv = Number(inputs[0].split(" ")[1]);
    // 選ばれた数値リスト
    var list = ['','',''];
    var answer = 0;
    
    // 各桁数の整数の指定がない場合
    if (conv == 0) {

        switch (digit) {
            case 2:
                answer = 10;
                break;
            case 3:
                answer = 100;
                break;
            default:
                break;
        }

        return console.log(answer);
    }

    // 入力値格納
    for (var i = 1; i < inputs.length; i++) {

        var tagetDigit = inputs[i].split(" ")[0] - 1;
        var num = inputs[i].split(" ")[1];
        
        // 同じ桁数で複数の数値が指定された場合、エラー
        if (list[tagetDigit] != '' && list[tagetDigit] != num) {

            return console.log(-1);
        }

        if (list[tagetDigit] == '') {

            list[tagetDigit] = num;
        }
    }

    for (var i = 0; i < digit; i++) {

        if (i === 0 && list[i] == 0) {

            return console.log(-1);
        }

        if (list[i] == '') {

            if (i === 0) {

                list[i] = 1;
            }

            if (i > 0) {

                list[i] = 0;
            }
        }
    }

    switch (digit) {
        case 3:
            answer = Number(list[0]) * 100
                   + Number(list[1]) * 10
                   + Number(list[2]);
            break;
        case 2:
            answer = Number(list[0] * 10)
                   + Number(list[1]);
            break;
        default:
            answer = Number(list[0]);
                break;
        
    }

    console.log(answer);
}
