using System; class Program { int[] masks = { 0, 3, 6, 12, 15, 24, 27, 30 }; int CountTilings(int n, int m, int s = 0) { if (n == 1) { return 1; } int result = 0; foreach (int mask in masks) { if ((mask & s) == 0) { result += CountTilings(n - 1, m, mask); } } return result; } public static void Main() { Program p = new Program(); int result = p.CountTilings(6, 5); Console.WriteLine(result); } }