import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### """ n が偶数 桁数は同じがいい 同じ nが奇数 - x """ from itertools import permutations def naive(n, c): if n == 0: return 0 ans = 10 ** 18 for p in permutations(c): A = int("".join([str(x) for x in p[:n//2]])) B = int("".join([str(x) for x in p[n//2:]])) ans = min(ans, abs(A - B)) return ans def large(m1, c): c = sorted(c) A = c[:m1] B = c[m1:][::-1] # print(A, B) a = 0 for i in range(len(A)): a = (a * 10 + A[i]) % mod b = 0 for i in range(len(B)): b = (b * 10 + B[i]) % mod return (a - b) % mod def large2(m1, c): c = sorted(c) A = c[:m1] B = c[m1:][::-1] # print(A, B) a = 0 for i in range(len(A)): a = a * 10 + A[i] b = 0 for i in range(len(B)): b = b * 10 + B[i] return a - b mod = 998244353 n = ni() c = na() if n % 2 == 1: print(large((n+1)//2, c)) else: # assert False cnt = [0] * 10 for i in range(n): cnt[c[i]] += 1 cc = [] for i in range(10): if cnt[i] % 2: cc.append(i) ans = naive(len(cc), cc) for i in range(10): dd = list(cc) if cnt[i] >= 2: ans = min(ans, naive(len(cc) + 2, dd + [i, i])) print(ans % mod)