#include <bits/stdc++.h>   using namespace std;   int n, k;   long long m, f[1005][105][2];   long long dfs(int Index, int y, int now, int flag) {     if (Index > n) return (flag == 0);     if (f[Index][y][flag] != -1) return f[Index][y][flag];     int st = Index == n ? 1 : 0, y1;     long long res = 0;     for (int i = st; i <= 9; i++) {       y1 = (y + now * i % k) % k;       res =           (res + dfs(Index + 1, y1, now * 10 % k, (flag && (y1 != 0 || !i)))) % m;     }     f[Index][y][flag] = res;     return res;   }   int main() {     scanf( %d %d %lld , &n, &k, &m);     memset(f, -1, sizeof f);     printf( %lld n , dfs(1, 0, 1, 1));     return 0;   }   