#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll MOD = 998244353;
string s;
int len;
int m;
ll dp[10010][4000][2][2];
ll sum0[10100];
ll dfs(int pos, int p, int zero, int limits, ll sum){
if(pos == 0)
return (p == 0 ? sum : 0);
if(dp[pos][p][zero][limits] != -1)
return dp[pos][p][zero][limits];
ll res(0);
int limit = limits ? (s[pos] - '0') : 9;
if(zero){
res += dfs(pos-1, p, zero, limits && (0 == limit), sum);
res %= MOD;
}
for(int i(zero ? 1 : 0); i <= limit; ++i){
res += dfs(pos-1, p & ~(1<<i), zero && (i == 0), limits && (i == limit), (sum + sum0[pos] * i % MOD) % MOD);
res %= MOD;
}
return dp[pos][p][zero][limits] = res;
}
int main(){
cin.tie(0) -> ios::sync_with_stdio(false);
memset(dp, -1, sizeof dp);
sum0[1] = 1;
for(int i(2); i <= 10000; ++i)
sum0[i] = sum0[i-1] * 10 % MOD;
cin >> s;
len = s.size();
reverse(s.begin(), s.end());
s = " " + s;
int k(0);
cin >> m;
for(int a, i = 1; i <= m; ++i)
cin >> a, k |= (1<<a);
cout << dfs(len, k, 1, 1, 0);
return 0;
}