//============================================================================
// Name        : aoj1500.cpp
// Author      : afterCmidday
// Version     :
// Copyright   : Your copyright notice
// Description : Hello World in C++, Ansi-style
//============================================================================

#include <iostream>
#include <string>
#include <string.h>
using namespace std;

int a[10], n, m;
int nwcsum = 0;

int judge(int wc[],int ptr[],int pnum){
	int sum = nwcsum;
	for(int i = 0;i < pnum;i++){
		int x = wc[i];
		if(n % 2 == 0){
			if(ptr[i] % 2 == 0){
				x *= 2;
			}
		}else{
			if(ptr[i] % 2 == 1){
				x *= 2;
			}
		}
		if (x >= 10) {
			sum += x / 10;
		}
		sum += x % 10;
	}
	if(sum % 10 == 0){
		return 1;
	}else{
		return 0;
	}

}

int dfs(int wc[],int ptr[],int i,int pnum){
	int sum = 0;
	if(i == pnum){
		return judge(wc,ptr,pnum);
	}
	for(int j = 0;j < m;j++){
		wc[i] = a[j];
		sum += dfs(wc,ptr,i + 1,pnum);
	}
	return sum;
}


int main() {
	int  wc[7], ptr[7], cnt = 0;
	string s;
	cin >> n >> s >> m;
	for(int i = 0;i < m;i++){
		cin >> a[i];
	}

	//nwcsum ワイルドカード以外の足し算
	for(int i = 0;i < n;i++){
		if(s[n - 1 - i] == '*'){
			ptr[cnt++] = n - 1 - i;
			continue;
		}
		int x = s[n - 1 - i] - '0';
		if(i % 2 == 1){
			x *= 2;
		}
		if (x >= 10) {
			nwcsum += x / 10;
		}
		nwcsum += x % 10;
	}

	cout << dfs(wc,ptr,0,cnt) << endl;

	return 0;
}