#include <bits/stdc++.h>
using namespace std;
const int maxn = 200030;
const int inf = 0x3f3f3f3f;
const int mod = 998244353;
long long num[20];
long long ans[20];
long long a[maxn];
long long n;
long long Pos;
long long anss = 0;
int main() {
  scanf("%lld", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%lld", &a[i]);
    if (a[i] < 10)
      num[1]++;
    else if (a[i] < 100)
      num[2]++;
    else if (a[i] < 1000)
      num[3]++;
    else if (a[i] < 10000)
      num[4]++;
    else if (a[i] < 100000)
      num[5]++;
    else if (a[i] < 1000000)
      num[6]++;
    else if (a[i] < 10000000)
      num[7]++;
    else if (a[i] < 100000000)
      num[8]++;
    else if (a[i] < 1000000000)
      num[9]++;
    else if (a[i] < 10000000000)
      num[10]++;
  }
  sort(a, a + n);
  for (int i = 0; i < n; ++i) {
    long long temp = a[i];
    int pos = 0;
    while (temp) {
      ans[++pos] += temp % 10;
      temp /= 10;
    }
    Pos = max((int)Pos, pos);
  }
  for (int i = 1; i <= 10; ++i) {
    long long idx = 1;
    for (int j = 1; j <= Pos; ++j) {
      long long anss1 = 0;
      if (j < i) {
        anss1 = (anss1 + ((ans[i] * 2) * num[j]) % mod) % mod;
        for (int k = 1; k < j + i; ++k) {
          anss1 *= 10;
          anss1 %= mod;
        }
      } else if (j >= i) {
        anss1 = (anss1 + ((ans[i] % mod) * num[j]) % mod +
                 (((ans[i] * 10) % mod) * num[j]) % mod) %
                mod;
        for (int k = 1; k < 2 * i - 1; ++k) {
          anss1 *= 10;
          anss1 %= mod;
        }
      }
      anss = (anss + anss1) % mod;
    }
  }
  printf("%lld", anss % mod);
  return 0;
}
