{"code":"2022decbronze3","name":"USACO 2022 December Contest, Bronze, Reverse Engineering","description":"Elsie có một phần mềm mà khi nhận được đầu vào là một dãy gồm $N$ $(1 \\le N \\le 100)$ biến $b[0], b[1], \\dots, b[N - 1]$, mỗi biến chỉ nhận giá trị $0$ hoặc $1$ và trả về kết quả sau khi áp dụng một dãy các câu lệnh điều kiện `if/else if/else` lên đầu vào. Mỗi câu lệnh kiểm tra giá trị của tối đa một biến trong đầu vào, và trả về $0$ hoặc $1$. Ví dụ của một chương trình thoả mãn:\r\n\r\n```cpp\r\nif (b[1] == 1) return 1;\r\nelse if (b[0] == 0) return 0;\r\nelse return 1;\r\n```\r\n\r\nLấy ví dụ, nếu đầu vào của chương trình trên là \"10\" $(b[0] = 1, b[1] = 0)$, thì đầu ra sẽ là $1$.\r\n\r\nElsie đã nói cho Bessie đầu ra chính xác cho $M$ $(1 \\le M \\le 100)$ đầu vào khác nhau. Bessie hiện tại đang muốn đảo ngược cấu trúc trong phần mềm của Elsie. Không may là, Elsie có thể đã buông lời dối gian; có thể có trường hợp mà không phần mềm nào cho đầu ra phù hợp với những lời Elsie nói.\r\n\r\nVới mỗi test trong $T$ $(1 \\le T \\le 10)$ test, hãy xác định xem Elsie nói dối hay thành thực!!\r\n\r\n#### Input\r\n- Dòng đầu tiên là số $T$.\r\n- Mỗi test bắt đầu với $2$ số $N$ và $M$, theo sau là $M$ dòng, mỗi dòng là một chuỗi nhị phân độ dài $N$ biểu diễn cho đầu vào và một kí tự $(0$ hoặc $1)$ biểu diễn cho đầu ra. Các test được ngăn cách nhau bởi một dòng.\r\n\r\n### Output\r\n- Mỗi test, hãy in ra \"OK\" nếu Elsie thành thật hoặc \"LIE\" nếu Elsie đã lừa dối.\r\n\r\n### Scoring\r\n- Subtask $1$: $N = 2$.\r\n- Subtask $2$: $M = 2$.\r\n- Subtask $3$: Không có ràng buộc gì thêm.\r\n\r\n\r\n!!! question \"Test 1\"\r\n    ???+ \"Input\"\r\n        ```\r\n        4\r\n\r\n        1 3\r\n        0 0\r\n        0 0\r\n        1 1\r\n\r\n        2 4\r\n        00 0\r\n        01 1\r\n        10 1\r\n        11 1\r\n\r\n        1 2\r\n        0 1\r\n        0 0\r\n\r\n        2 4\r\n        00 0\r\n        01 1\r\n        10 1\r\n        11 0\r\n        ```\r\n    ???+ \"Output\"\r\n        ```\r\n        OK\r\n        OK\r\n        LIE\r\n        LIE\r\n        ```\r\n    ??? warning \"Note\"\r\n        - Đây là một chương trình hợp lệ cho test đầu tiên:\r\n            ```cpp\r\n            if (b[0] == 0) return 0;\r\n            else return 1;\r\n            ```\r\n        - Một chương trình khác là:\r\n            ```cpp\r\n            if (b[0] == 1) return 1;\r\n            else return 0;\r\n            ```\r\n        - Một chương trình hợp lệ cho test thứ hai:\r\n            ```cpp\r\n            if (b[1] == 1) return 1;\r\n            else if (b[0] == 0) return 0;\r\n            else return 1;\r\n            ```\r\n        - Rõ ràng là, không có chương trình nào thoả mãn test thứ ba bởi vì phần mềm của Elsie phải luôn luôn cho đầu ra giống nhau với đầu vào như nhau.\r\n        - Có thể chứng minh rằng không có chương trình nào thoả mãn test cuối cùng.","points":1000.0,"partial":true,"time_limit":2.0,"memory_limit":262144,"short_circuit":false,"allowed_languages":[3,4,34,36,37,5,6,11,12,14,28,2,38,39,9,18,17,29,23,27,35,25,26,10,7,19,32,1,8,15,16,24,20,33,13,41,21,40],"is_public":true,"is_manually_managed":false,"permissions":{"can_edit":false}}