#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N = 1e5 + 5;
const int MOD = 998244353;
int n;
int a[N];
int dp[N][10]; // dp[i][val] = số cách để tạo ra giá trị val (0 <= val <= 9) từ i phần tử đầu tiên
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
dp[2][(a[1] + a[2]) % 10]++;
dp[2][(a[1] * a[2]) % 10]++;
// nếu cài đặt kiểu get về: dp(i) truy hồi về dp(i - 1)
// (a[i] + x) % 10 = val
// (a[i] * x) % 10 = val
// nếu cài đặt kiểu update lên: dp(i) cập nhật lên cho dp(i + 1)
// (val + a[i + 1]) % 10 = new_val
// (val * a[i + 1]) % 10 = new_val
for (int i = 2; i < n; i++) {
for (int val = 0; val <= 9; val++) {
(dp[i + 1][(val + a[i + 1]) % 10] += dp[i][val]) %= MOD;
(dp[i + 1][(val * a[i + 1]) % 10] += dp[i][val]) %= MOD;
}
}
for (int K = 0; K <= 9; K++) {
cout << dp[n][K] << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7IAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKCmNvbnN0IGludCBOID0gMWU1ICsgNTsgCmNvbnN0IGludCBNT0QgPSA5OTgyNDQzNTM7ICAKCmludCBuOyAgCmludCBhW05dOyAgCgppbnQgZHBbTl1bMTBdOyAvLyBkcFtpXVt2YWxdID0gc+G7kSBjw6FjaCDEkeG7gyB04bqhbyByYSBnacOhIHRy4buLIHZhbCAoMCA8PSB2YWwgPD0gOSkgdOG7qyBpIHBo4bqnbiB04butIMSR4bqndSB0acOqbgoKaW50IG1haW4oKSB7Cglpb3M6OnN5bmNfd2l0aF9zdGRpbygwKTsgCgljaW4udGllKDApOyAgCgljaW4gPj4gbjsgIAoJZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBjaW4gPj4gYVtpXTsgICAKCglkcFsyXVsoYVsxXSArIGFbMl0pICUgMTBdKys7IAoJZHBbMl1bKGFbMV0gKiBhWzJdKSAlIDEwXSsrOyAKCgkvLyBu4bq/dSBjw6BpIMSR4bq3dCBraeG7g3UgZ2V0IHbhu4E6IGRwKGkpIHRydXkgaOG7k2kgduG7gSBkcChpIC0gMSkKCS8vIChhW2ldICsgeCkgJSAxMCA9IHZhbCAgIAoJLy8gKGFbaV0gKiB4KSAlIDEwID0gdmFsICAgCgoJLy8gbuG6v3UgY8OgaSDEkeG6t3Qga2nhu4N1IHVwZGF0ZSBsw6puOiBkcChpKSBj4bqtcCBuaOG6rXQgbMOqbiBjaG8gZHAoaSArIDEpCgkvLyAodmFsICsgYVtpICsgMV0pICUgMTAgPSBuZXdfdmFsICAgCgkvLyAodmFsICogYVtpICsgMV0pICUgMTAgPSBuZXdfdmFsCgoJZm9yIChpbnQgaSA9IDI7IGkgPCBuOyBpKyspIHsKCQlmb3IgKGludCB2YWwgPSAwOyB2YWwgPD0gOTsgdmFsKyspIHsKCQkJKGRwW2kgKyAxXVsodmFsICsgYVtpICsgMV0pICUgMTBdICs9IGRwW2ldW3ZhbF0pICU9IE1PRDsgCgkJCShkcFtpICsgMV1bKHZhbCAqIGFbaSArIDFdKSAlIDEwXSArPSBkcFtpXVt2YWxdKSAlPSBNT0Q7IAkJCQkKCQl9Cgl9CgoJZm9yIChpbnQgSyA9IDA7IEsgPD0gOTsgSysrKSB7CgkJY291dCA8PCBkcFtuXVtLXSA8PCAnXG4nOyAKCX0KfQ==