Trò chơi Pikachu là một trò chơi trên một bảng hình chữ nhật kích thước ô vuông kích thước đơn vị. Các dòng được đánh số từ đến , từ trên xuống dưới. Các cột được đánh số từ đến , từ trái qua phải. Ô nằm ở vị trí dòng và cột của bảng được gọi là ô . Mỗi ô của bảng hoặc được để trống hoặc chứa một biểu tượng. Mỗi lượt, bạn được chọn hai ô chứa hai biểu tượng giống nhau và xóa chúng thành trống nếu tâm (giao điểm của hai đường chéo) của hai ô này có thể nối với nhau bằng một đường gấp khúc gồm không quá đoạn thẳng độ dài nguyên, mỗi đoạn song song với cạnh của bảng, ngoại trừ hai ô cần xoá, đường gấp khúc này chỉ qua các ô trống hay nằm ngoài bảng. Bạn được gọi là giành chiến thắng nếu có thể xóa trống toàn bộ bảng.
Yêu cầu: Cho hai số và bảng số kích thước mô tả trạng thái bảng ban đầu, hãy xác định giá trị nhỏ nhất để có thể xóa trống toàn bộ bảng.
Dữ liệu:
Dòng đầu tiên chứa hai số nguyên ;
Tiếp theo là dòng, mỗi dòng chứa số nguyên không âm có giá trị không vượt quá mô tả trạng thái bảng của trò chơi. Số cho biết là ô trống, số nguyên dương cho biết loại biểu tượng. Chú ý rằng, mỗi loại biểu tượng xuất hiện đúng hai lần.
Kết quả:
Ghi ra giá trị số nhỏ nhất tìm được. Trong trường hợp không thể xóa trống toàn bộ bảng ghi .