#include <bits/stdc++.h>
char st[100005];
int main() {
  long long ans = 1;
  int si, i, p, s, S;
  scanf("%s", &st);
  si = strlen(st);
  s = 0;
  int a[100] = {0};
  S = 0;
  for (i = 0; i < si; i++)
    if (st[i] == '?') s++;
  if (st[0] == '?') {
    ans *= 9;
    for (i = 1; i < s; i++) S++;
    p = 10;
    for (i = 1; i < si; i++)
      if (st[0] != st[i] && st[i] >= 'A' && st[i] <= 'Z') a[st[i] - 'A']++;
    for (i = 0; i < 10; i++)
      if (a[i] > 0 && st[0] != i + 'A') {
        ans *= (p--);
      }
  } else if (st[0] >= 'A' && st[0] <= 'Z') {
    ans *= 9;
    p = 9;
    for (i = 1; i < si; i++)
      if (st[0] != st[i] && st[i] >= 'A' && st[i] <= 'Z') a[st[i] - 'A']++;
    for (i = 0; i < 10; i++)
      if (a[i] > 0 && st[0] != i + 'A') {
        ans *= (p--);
      }
    S += s;
  } else {
    p = 10;
    for (i = 1; i < si; i++)
      if (st[0] != st[i] && st[i] >= 'A' && st[i] <= 'Z') a[st[i] - 'A']++;
    for (i = 0; i < 10; i++)
      if (a[i] > 0 && st[0] != i + 'A') {
        ans *= (p--);
      }
    S += s;
  }
  printf("%lld", ans);
  for (i = 0; i < S; i++) printf("0");
  printf("\n");
  return 0;
}
