from functools import lru_cache def main(): import sys sys.setrecursionlimit(1 << 25) input = sys.stdin.read().split() idx = 0 N = int(input[idx]) idx += 1 K = int(input[idx]) idx += 1 counts = list(map(int, input[idx:idx + 9])) idx += 9 counts_tuple = tuple(counts) @lru_cache(maxsize=None) def dp(remainder, counts): if all(c == 0 for c in counts): return 1 if remainder == 0 else 0 total = 0 for i in range(9): if counts[i] == 0: continue new_counts = list(counts) new_counts[i] -= 1 new_counts_tuple = tuple(new_counts) new_remainder = (remainder * 10 + (i + 1)) % K total += dp(new_remainder, new_counts_tuple) return total print(dp(0, counts_tuple)) if __name__ == '__main__': main()