#include using namespace std; using lint = long long; const lint MOD = 998244353; const lint INF = (1LL<<60); // cntの情報を元に、前or後ろからk桁を決める // sで下からk+1桁目を設定する lint make_num(const vector &cnt, int k, bool reversed = false, lint s = 0) { lint res = s; int digit = 0; if (!reversed) { for (int i = 1; i <= 9 && digit < k; i++) { for (int j = 0; j < cnt[i] && digit < k; j++) { res = res*10+i; digit++, res%=MOD; } } } else { for (int i = 9; i >= 1 && digit < k; i--) { for (int j = 0; j < cnt[i] && digit < k; j++) { res = res*10+i; digit++, res%=MOD; } } } return res; } int main() { int N; cin >> N; vector c(N), cnt(10); for (int i = 0; i < N; i++) cin >> c[i], cnt[c[i]]++; if (N%2 == 0) { lint ans = INF; vector cnt_subset(10); int sum = 0; for (int i = 1; i <= 9; i++) { cnt_subset[i] = cnt[i]%2; sum += cnt[i]%2; } // すべての数字が偶数個あるとき if (sum == 0) ans = 0; // 下から(k+1)桁目が変わらず一定のとき // 下k桁(奇数個のやつのみ)を考えれば良い for (int i = 1; i <= 9; i++) { for (int j = i+1; j <= 9; j++) { if (cnt_subset[i] == 0 || cnt_subset[j] == 0) continue; cnt_subset[i]--, cnt_subset[j]--; // i