#include <bits/stdc++.h>
using namespace std;
map<string, bool> dif;
const int SIGMA = 62;
const int MOD = 998244353;
int matr[11][SIGMA][SIGMA];
int id[128];
char alpha[] = "abcdefghijklmnopABCDEFGHIJKLMNOPqrstuvwxyzQRSTUVWXYZ0123456789";
static inline int add(int a, int b) {
  if (a + b >= MOD) return a + b - MOD;
  return a + b;
}
static inline int prod(int a, int b) { return (long long)a * b % MOD; }
int cnt[SIGMA][SIGMA][SIGMA];
int fact[] = {1, 1, 2, 6, 24};
int getcnt(int a, int b, int c) {
  if (a > b) swap(a, b);
  if (a > c) swap(a, c);
  if (b > c) swap(b, c);
  return cnt[a][b][c];
}
int perm(int a, int b, int c, int d) {
  int rez = 24;
  int v[4] = {a, b, c, d};
  int i, j;
  i = j = 0;
  while (i < 4) {
    j = i;
    while (j < 4 && v[j] == v[i]) ++j;
    rez = rez / fact[j - i];
    i = j;
  }
  return rez;
}
int solve(int matr[SIGMA][SIGMA], int bigalpha) {
  for (int c1 = 0; c1 <= bigalpha; ++c1)
    for (int c2 = c1; c2 <= bigalpha; ++c2)
      for (int c3 = c2; c3 <= bigalpha; ++c3) {
        cnt[c1][c2][c3] = 0;
        for (int i = 0; i <= bigalpha; ++i)
          cnt[c1][c2][c3] =
              add(cnt[c1][c2][c3],
                  prod(prod(matr[c1][i], matr[c2][i]), matr[c3][i]));
      }
  int rez = 0;
  for (int c1 = 0; c1 <= bigalpha; ++c1)
    for (int c2 = c1; c2 <= bigalpha; ++c2)
      for (int c3 = c2; c3 <= bigalpha; ++c3)
        for (int c4 = c3; c4 <= bigalpha; ++c4) {
          rez = add(rez,
                    prod(prod(prod(prod(getcnt(c1, c2, c3), getcnt(c1, c2, c4)),
                                   getcnt(c1, c3, c4)),
                              getcnt(c2, c3, c4)),
                         perm(c1, c2, c3, c4)));
        }
  return rez;
}
int main() {
  int n, bigalpha = 0;
  for (int i = 0; i < SIGMA; ++i) id[alpha[i]] = i;
  cin >> n;
  for (int i = 0; i < n; ++i) {
    string str;
    cin >> str;
    dif[str] = true;
    reverse(str.begin(), str.end());
    dif[str] = true;
  }
  for (auto it : dif)
    if (it.second) {
      matr[it.first.size()][id[it.first.front()]][id[it.first.back()]]++;
      bigalpha = max(bigalpha, max(id[it.first.front()], id[it.first.back()]));
    }
  int rez = 0;
  for (int i = 3; i <= 10; ++i) rez = add(rez, solve(matr[i], bigalpha));
  cout << rez;
  return 0;
}
