#include using namespace std; using lint = long long; const lint MOD = 998244353; const lint INF = (1LL<<60); int main() { int N; cin >> N; vector c(N); for (int i = 0; i < N; i++) cin >> c[i]; if (N%2 == 0) { // Nが偶数のとき // 奇数個ある数字を考える vector cnt(10); for (int i = 0; i < N; i++) cnt[c[i]]++; vector c_subset; for (int i = 1; i < 10; i++) { if (cnt[i]%2 == 1) c_subset.push_back(i); } int siz = c_subset.size(); if (siz == 0) { cout << 0 << endl; return 0; } lint ans = INF; for (int i = 0; i < siz; i++) { for (int j = i+1; j < siz; j++) { lint a=c_subset[j], b=c_subset[i]; // a>b for (int k = 0, selected = 1; selected < siz/2; k++) { if (k == i || k == j) continue; a = a*10+c_subset[k]; selected++; } for (int k = siz-1, selected = 1; selected < siz/2; k--) { if (k == i || k == j) continue; b = b*10+c_subset[k]; selected++; } ans = min(ans, a-b); } } cout << ans << endl; } else { // Nが奇数のとき sort(c.begin(), c.end()); lint a=0, b=0; // a: k+1桁, b: k桁 for (int i = 0; i < (N+1)/2; i++) { a = a*10+c[i]; a %= MOD; } for (int i = N-1; i >= (N+1)/2; i--) { b = b*10+c[i]; b %= MOD; } cout << (a-b+MOD)%MOD << endl; } }