#pragma GCC target("avx2") #pragma GCC optimize("O3") #pragma GCC optimize("unroll-loops") #include #include #define rep(i, a, b) for (ll i = (ll)(a); i < (ll)(b); i++) using namespace atcoder; using namespace std; typedef long long ll; void solve() { string s; cin >> s; int k = s.size(); vector c(k, vector(k)); rep(i, 0, k) rep(j, 0, k) cin >> c[i][j]; int n, m; cin >> n >> m; vector a(n, vector(m)); rep(i, 0, n) { string t; cin >> t; rep(j, 0, m) rep(l, 0, k) if (t[j] == s[l]) a[i][j] = l; } vector cnts(m, vector(k)); rep(j, 0, m) rep(i, 0, n) cnts[j][a[i][j]]++; rep(i, 0, n) { ll ans = 0; rep(j, 0, m) rep(l, 0, k) ans += (ll)c[a[i][j]][l] * cnts[j][l]; cout << ans << '\n'; } } int main() { ios::sync_with_stdio(false); cin.tie(nullptr); cout << fixed << setprecision(15); solve(); }