#include <bits/stdc++.h>
int dp[1005][105][2], shi[1005];
int k, MOD, n;
int dfs(int pos, int preMOD, int flag) {
  int tmp, i, ans = 0;
  if (pos > n) return flag;
  if (dp[pos][preMOD][flag] != -1) return dp[pos][preMOD][flag];
  tmp = (pos == n ? 1 : 0);
  for (i = tmp; i <= 9; i++)
    ans =
        (ans + dfs(pos + 1, (preMOD + i * shi[pos - 1]) % k,
                   flag || ((preMOD + i * shi[pos - 1]) % k == 0 && i != 0))) %
        MOD;
  return dp[pos][preMOD][flag] = ans;
}
int main() {
  int cnt, i;
  scanf("%d%d%d", &n, &k, &MOD);
  shi[0] = 1;
  for (i = 1; i <= 1000; i++) shi[i] = shi[i - 1] * 10 % k;
  memset(dp, -1, sizeof(dp));
  printf("%d\n", dfs(1, 0, 0));
}
