#include <bits/stdc++.h>
#pragma GCC optimize("O3")
#pragma GCC optimize("unroll-loops")
using namespace std;
const long long MOD = 998244353;
long long power(long long a, long long x) {
  if (x == 0) return 1;
  long long res = power(a, x / 2);
  res = (res * res) % MOD;
  if (x % 2) res = (res * a) % MOD;
  return res;
}
long long inverse(long long a) { return power(a, MOD - 2); }
long long factorial(long long a) {
  long long res = 1;
  for (long long i = 1; i <= a; i++) res = (res * i) % MOD;
  return res;
}
long long choose(long long a, long long b) {
  long long res = factorial(a);
  res = (res * inverse(factorial(b))) % MOD;
  res = (res * inverse(factorial(a - b))) % MOD;
  return res;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  long long n;
  cin >> n;
  vector<long long> a(2 * n);
  for (long long i = 0; i < 2 * n; i++) cin >> a[i];
  sort(a.begin(), a.end());
  long long res = 0;
  for (long long i = 0; i < n; i++) {
    res += a[2 * n - 1 - i] - a[i];
    res %= MOD;
  }
  res = (res * choose(2 * n, n)) % MOD;
  cout << res << '\n';
}
