#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int N = 1e5 + 5;
const int MOD = 998244353;
void add(int& a, int b) {
a += b;
if (a >= MOD) a -= MOD;
}
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(false);
cin.tie(nullptr);
cin >> n;
for (int i = 1; i <= n; i++) cin >> a[i];
// Khởi tạo cho 2 phần tử đầu tiên
dp[2][(a[1] + a[2]) % 10] = 1;
add(dp[2][(a[1] * a[2]) % 10], 1);
for (int i = 3; i <= n; i++) {
// Gọi prev_val là giá trị khi gộp i - 1 phần tử trước đó
// Từ prev_val, a[i] và loại thao tác áp dụng hiện tại là F hay G, ta tính ra được giá trị gộp mới
for (int prev_val = 0; prev_val <= 9; prev_val++) {
add(dp[i][(prev_val + a[i]) % 10], dp[i - 1][prev_val]);
add(dp[i][(prev_val * a[i]) % 10], dp[i - 1][prev_val]);
}
}
for (int val = 0; val <= 9; val++) {
cout << dp[n][val] << '\n';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOyAKCnR5cGVkZWYgbG9uZyBsb25nIGxsOyAgCnR5cGVkZWYgcGFpcjxpbnQsIGludD4gaWk7IAoKY29uc3QgaW50IE4gPSAxZTUgKyA1OyAKY29uc3QgaW50IE1PRCA9IDk5ODI0NDM1MzsgIAoKdm9pZCBhZGQoaW50JiBhLCBpbnQgYikgewoJYSArPSBiOyAKCWlmIChhID49IE1PRCkgYSAtPSBNT0Q7IAp9CgppbnQgbjsgIAppbnQgYVtOXTsgIAoKaW50IGRwW05dWzEwXTsgLy8gZHBbaV1bdmFsXSA9IFPhu5EgY8OhY2ggxJHhu4MgdOG6oW8gcmEgZ2nDoSB0cuG7iyB2YWwgKDAgPD0gdmFsIDw9IDkpIHThu6sgaSBwaOG6p24gdOG7rSDEkeG6p3UgdGnDqm4KCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKCWNpbi50aWUobnVsbHB0cik7ICAKCWNpbiA+PiBuOyAgCglmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIGNpbiA+PiBhW2ldOyAgIAoKCS8vIEto4bufaSB04bqhbyBjaG8gMiBwaOG6p24gdOG7rSDEkeG6p3UgdGnDqm4gCglkcFsyXVsoYVsxXSArIGFbMl0pICUgMTBdID0gMTsgCglhZGQoZHBbMl1bKGFbMV0gKiBhWzJdKSAlIDEwXSwgMSk7IAoKCWZvciAoaW50IGkgPSAzOyBpIDw9IG47IGkrKykgewoJCS8vIEfhu41pIHByZXZfdmFsIGzDoCBnacOhIHRy4buLIGtoaSBn4buZcCBpIC0gMSBwaOG6p24gdOG7rSB0csaw4bubYyDEkcOzCgkJLy8gVOG7qyBwcmV2X3ZhbCwgYVtpXSB2w6AgbG/huqFpIHRoYW8gdMOhYyDDoXAgZOG7pW5nIGhp4buHbiB04bqhaSBsw6AgRiBoYXkgRywgdGEgdMOtbmggcmEgxJHGsOG7o2MgZ2nDoSB0cuG7iyBn4buZcCBt4bubaQoJCWZvciAoaW50IHByZXZfdmFsID0gMDsgcHJldl92YWwgPD0gOTsgcHJldl92YWwrKykgewkKCQkJYWRkKGRwW2ldWyhwcmV2X3ZhbCArIGFbaV0pICUgMTBdLCBkcFtpIC0gMV1bcHJldl92YWxdKTsgCgkJCWFkZChkcFtpXVsocHJldl92YWwgKiBhW2ldKSAlIDEwXSwgZHBbaSAtIDFdW3ByZXZfdmFsXSk7IAkJCQkKCQl9Cgl9CgoJZm9yIChpbnQgdmFsID0gMDsgdmFsIDw9IDk7IHZhbCsrKSB7CgkJY291dCA8PCBkcFtuXVt2YWxdIDw8ICdcbic7IAoJfQp9