#include #include using namespace std; using i32 = int; using i64 = long long; using i128 = __int128_t; using f64 = double; using p2 = pair; using el = tuple; using mint = atcoder::modint; void _main(); int main() { cin.tie(0); ios::sync_with_stdio(false); cout << fixed << setprecision(18); _main(); } void _main() { vector> dist(26, vector(26, 0)); string a; cin >> a; for (i64 i = 0; i < a.size(); i++) { for (i64 j = 0; j < a.size(); j++) { i64 x = a[i] - 'a', y = a[j] - 'a'; cin >> dist[x][y]; } } i64 n, m; cin >> n >> m; vector s(n); for (i64 i = 0; i < n; i++) { cin >> s[i]; } vector ans(n, 0); for (i64 i = 0; i < m; i++) { vector cnt(26, 0); vector sum(26, 0); for (i64 j = 0; j < n; j++) { cnt[s[j][i] - 'a']++; } for (i64 j = 0; j < 26; j++) { for (i64 k = 0; k < 26; k++) { sum[j] += dist[j][k] * cnt[k]; } } for (i64 j = 0; j < n; j++) { ans[j] += sum[s[j][i] - 'a']; } } for (i64 i = 0; i < n; i++) { cout << ans[i] << "\n"; } }