#include <bits/stdc++.h>
using namespace std;
long long gi() {
  char cc = getchar();
  long long cn = 0, flus = 1;
  while (cc < '0' || cc > '9') {
    if (cc == '-') flus = -flus;
    cc = getchar();
  }
  while (cc >= '0' && cc <= '9') cn = cn * 10 + cc - '0', cc = getchar();
  return cn * flus;
}
const long long P = 998244353;
long long fpow(long long x, long long k) {
  long long ans = 1, base = x;
  while (k) {
    if (k & 1) ans = 1ll * ans * base % P;
    base = 1ll * base * base % P, k >>= 1;
  }
  return ans;
}
const long long N = 3e5 + 5;
long long m, n, a[N], fac[N], inv[N];
long long C(long long x, long long y) {
  return fac[x] * inv[y] % P * inv[x - y] % P;
}
signed main() {
  m = gi(), n = m * 2;
  for (register long long i = (1); i <= (n); ++i) a[i] = gi();
  sort(a + 1, a + n + 1);
  fac[0] = inv[0] = 1;
  for (register long long i = (1); i <= (n); ++i) fac[i] = fac[i - 1] * i % P;
  for (register long long i = (1); i <= (n); ++i) inv[i] = fpow(fac[i], P - 2);
  long long ans = 0;
  for (register long long i = (1); i <= (n); ++i) {
    long long z = a[i] * C(n - 1, m - 1);
    if (i <= m)
      ans = (ans - z + P) % P;
    else
      ans = (ans + z + P) % P;
  }
  cout << ans * 2 % P << endl;
  return 0;
}
