#include <bits/stdc++.h>
using namespace std;
long long power(long long x, long long y, long long p) {
  long long res = 1;
  x %= p;
  while (y > 0) {
    if (y & 1) res = (res * x) % p;
    y = y >> 1;
    x = (x * x) % p;
  }
  return res;
}
long long factorial[1000005], invfactorial[1000005];
long long multiply(long long a, long long b) {
  return ((a % 998244353) * (b % 998244353)) % 998244353;
}
long long modinv(long long k) { return power(k, 998244353 - 2, 998244353); }
void pre() {
  factorial[0] = factorial[1] = 1;
  for (long long i = 2; i < 1000005; i++) {
    factorial[i] = factorial[i - 1] * i;
    factorial[i] %= 998244353;
  }
  invfactorial[1000005 - 1] = modinv(factorial[1000005 - 1]);
  for (long long i = 1000005 - 2; i >= 0; i--) {
    invfactorial[i] = invfactorial[i + 1] * (i + 1);
    invfactorial[i] %= 998244353;
  }
}
long long nCrmod(long long x, long long y) {
  if (y > x) return 0;
  long long n = factorial[x];
  n *= invfactorial[y];
  n %= 998244353;
  n *= invfactorial[x - y];
  n %= 998244353;
  return n;
}
void solve() {
  long long n;
  cin >> n;
  vector<long long> v(2 * n);
  for (long long i = 0; i < 2 * n; i++) cin >> v[i];
  sort((v).begin(), (v).end());
  long long ans = 0;
  long long i = 0, j = 2 * n - 1;
  while (i < j) {
    ans += (v[j] - v[i]);
    j--;
    i++;
  }
  cout << multiply(nCrmod(2 * n, n), ans);
}
int32_t main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long t = 1;
  pre();
  cout << fixed << setprecision(12);
  while (t--) {
    solve();
  }
  cerr << "Time Taken : " << (float)clock() / CLOCKS_PER_SEC << " secs"
       << "\n";
}
