Олимпиадный тренинг

Задача . D. Сейф


Задача

Темы: Перебор *2200

Вася пытается взломать сейф. Он знает, что код состоит из n цифр, причем каждая цифра — 0 или 1. Вася сделал m попыток ввести код. После каждой попытки система сообщала ему, в скольких позициях стоят правильные цифры. В каких именно позициях стоят неправильные цифры не сообщается. Вася был настолько неудачлив, что ни разу не ввел код, в котором было бы правильно более 5 цифр. Сейчас Вася совсем запутался — ему кажется, что в системе ошибка, и она противоречит самой себе. Помогите Васе — посчитайте, сколько осталось возможных вариантов кода, которые не противоречат предыдущим ответам системы.

Входные данные

В первой строке записано два целых числа n и m (6 ≤ n ≤ 35, 1 ≤ m ≤ 10) — количество цифр в коде и количество попыток, сделанных Васей. Далее следует m строк, в каждой из которых через пробел записаны si и ci — соответственно Васина попытка (строка из n цифр 0 или 1) и ответ системы (целое число от 0 до 5 включительно).

Выходные данные

Выведите одно число — сколько осталось вариантов кода, которые не противоречат m ответам системы.


Примеры
Входные данныеВыходные данные
1 6 2
000000 2
010100 4
6
2 6 3
000000 2
010100 4
111100 0
0
3 6 3
000000 2
010100 4
111100 2
1

time 5000 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
 Кол-во
С++ Mingw-w645
Комментарий учителя