#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:2000000")
#pragma comment(linker, "/HEAP:2000000")
using namespace std;
void print_width(long long x) {
  std::cout << std::fixed;
  std::cout << std::setprecision(x);
}
long long power(long long x, long long y, long long p = 1000000007) {
  long long res = 1;
  x = x % p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
void printArr(long long a[], long long n) {
  for (long long i = 0; i < n; i++) cout << a[i] << " ";
  cout << '\n';
}
void printVector(std::vector<long long> v) {
  for (long long i = 0; i < v.size(); i++) cout << v[i] << " ";
  cout << '\n';
}
void printVectorPair(std::vector<pair<long long, long long>> v) {
  for (long long i = 0; i < v.size(); i++)
    cout << v[i].first << " " << v[i].second << '\n';
  ;
  cout << '\n';
}
long long Min(long long a, long long b, long long c) {
  if (a < b and a < c) return a;
  if (b < c) return b;
  return c;
}
void initialize(long long arr[], long long n) {
  for (long long i = 0; i <= n; i++) arr[i] = i;
}
long long root(long long arr[], long long i) {
  while (arr[i] != i) {
    arr[i] = arr[arr[i]];
    i = arr[i];
  }
  return i;
}
void Union(long long arr[], long long a, long long b) {
  long long root_a = root(arr, a);
  long long root_b = root(arr, b);
  arr[root_a] = root_b;
}
long long gcd(long long a, long long b) {
  if (b == 0)
    return a;
  else
    return gcd(b, a % b);
}
long long power_wm(long long x, long long y) {
  long long res = 1;
  while (y > 0) {
    if (y & 1) res = (res * x);
    y = y >> 1;
    x = (x * x);
  }
  return res;
}
long double dpower(long double x, long long y) {
  long double res = 1;
  while (y > 0) {
    if (y & 1) res = (res * x);
    y = y >> 1;
    x = (x * x);
  }
  return res;
}
std::vector<long long> vsum(std::vector<long long> a) {
  std::vector<long long> s(a.size());
  s[0] = a[0];
  for (long long i = 1; i <= a.size() - 1; i++) {
    s[i] = s[i - 1] + a[i];
  }
  return s;
}
bool comp(pair<long long, long long> a, pair<long long, long long> b) {
  long long x = a.second * b.first;
  long long y = a.first * b.second;
  if (x <= y)
    return false;
  else
    return true;
}
bool is_cap(char a) {
  if (a <= 'Z' and a >= 'A')
    return true;
  else
    return false;
}
bool is_small(char a) {
  if (a <= 'z' and a >= 'a')
    return true;
  else
    return false;
}
string addition(string str1, string str2) {
  string str = "";
  if (str1.size() > str2.size()) {
    swap(str1, str2);
  }
  int n1 = str1.size(), n2 = str2.size();
  reverse(str1.begin(), str1.end());
  reverse(str2.begin(), str2.end());
  int carry;
  carry = 0;
  for (int i = 0; i < n1; i++) {
    int sum;
    sum = ((str1[i] - '0') + (str2[i] - '0') + carry);
    str.push_back(sum % 10 + '0');
    carry = sum / 10;
  }
  for (int i = n1; i < n2; i++) {
    int sum;
    sum = ((str2[i] - '0') + carry);
    str.push_back(sum % 10 + '0');
    carry = sum / 10;
  }
  if (carry) str.push_back(carry + '0');
  reverse(str.begin(), str.end());
  return str;
}
bool mcomp(long long a, long long b, long long c, long long d) {
  if (a == b and b == c and c == d)
    return true;
  else
    return false;
}
long long c2(long long n) { return (n * (n - 1)) / 2; }
void time() {}
char mat[1001][1001];
long long mat2[1001][1001];
long long n, m;
string multiply(string num1, string num2) {
  int n1 = num1.size();
  int n2 = num2.size();
  if (n1 == 0 || n2 == 0) return "0";
  vector<int> result(n1 + n2, 0);
  int i_n1 = 0;
  int i_n2 = 0;
  for (int i = n1 - 1; i >= 0; i--) {
    int carry = 0;
    int n1 = num1[i] - '0';
    i_n2 = 0;
    for (int j = n2 - 1; j >= 0; j--) {
      int n2 = num2[j] - '0';
      int sum = n1 * n2 + result[i_n1 + i_n2] + carry;
      carry = sum / 10;
      result[i_n1 + i_n2] = sum % 10;
      i_n2++;
    }
    if (carry > 0) result[i_n1 + i_n2] += carry;
    i_n1++;
  }
  int i = result.size() - 1;
  while (i >= 0 && result[i] == 0) i--;
  if (i == -1) return "0";
  string s = "";
  while (i >= 0) s += std::to_string(result[i--]);
  return s;
}
long long mod(string num, long long a) {
  long long res = 0;
  for (long long i = 0; i < num.length(); i++)
    res = (res * 10 + (long long)num[i] - '0') % a;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n;
  cin >> n;
  vector<string> a(n);
  for (long long i = 0; i < n; i++) cin >> a[i];
  vector<string> b(n);
  vector<string> c(n);
  for (long long i = 0; i < n; i++) {
    string s1 = "";
    string s2 = "";
    for (long long j = 0; j < a[i].size(); j++) {
      s1 += '0';
      s1 += a[i][j];
      s2 += a[i][j];
      s2 += '0';
    }
    b[i] = s1;
    c[i] = s2;
  }
  string ans1 = "0", ans2 = "0";
  for (long long i = 0; i < n; i++) {
    ans1 = addition(ans1, c[i]);
    ans2 = addition(ans2, b[i]);
  }
  string fs = multiply(addition(ans1, ans2), to_string(n));
  cout << mod(fs, 998244353);
  return 0;
}
