#include <bits/stdc++.h>
using namespace std;
const int SI = 1e5 + 100;
const long long mod = 998244353;
long long n;
long long ans = 0;
long long a[SI];
long long num[SI][10];
long long lent[SI];
long long p10[30];
long long cnt[15];
void work(int id) {
  int m = 0;
  int i;
  long long nv1, nv2;
  for (int lt = 1; lt <= 10; lt++) {
    int m = 0;
    for (i = 0; i < lt && i < lent[id]; i++) {
      nv1 = num[id][i] * p10[m] % mod * cnt[lt] % mod;
      nv2 = num[id][i] * p10[m + 1] % mod * cnt[lt] % mod;
      ans = (ans + nv1 + nv2) % mod;
      m += 2;
    }
    for (; i < lent[id]; i++) {
      nv1 = num[id][i] * p10[m] % mod * cnt[lt] % mod;
      nv2 = nv1;
      ans = (ans + nv1 + nv2) % mod;
      m++;
    }
  }
}
int get_len(int i) {
  int len = 0;
  long long x = a[i];
  while (x > 0) {
    num[i][len] = x % 10;
    x /= 10;
    len++;
  }
  return len;
}
int main() {
  p10[0] = 1;
  for (int i = 1; i <= 25; i++) p10[i] = p10[i - 1] * 10ll % mod;
  scanf("%I64d", &n);
  for (int i = 1; i <= n; i++) {
    scanf("%I64d", &a[i]);
    int l = get_len(i);
    lent[i] = l;
    cnt[l]++;
  }
  for (int i = 1; i <= n; i++) {
    work(i);
  }
  printf("%I64d", ans);
  return 0;
}
