#include <bits/stdc++.h>
using namespace std;
void debug() { cerr << "\n"; }
template <typename H, typename... T>
void debug(H h, T... t) {
  cerr << h;
  if (sizeof...(t)) cerr << ", ";
  debug(t...);
}
const int N = 3e5 + 5, INF = 1e9 + 5, mod = 998244353;
int fact[N];
long long pot(long long a, long long b) {
  if (b == 0) return 1ll;
  if (b == 1) return a;
  long long c = pot(a, b / 2);
  c = (c * c) % mod;
  return (c * pot(a, b & 1)) % mod;
}
int npok(int _n, int _k) {
  return (((fact[_n] * 1ll * pot(fact[_k], mod - 2)) % mod) * 1ll *
          pot(fact[_n - _k], mod - 2)) %
         mod;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  fact[0] = 1;
  for (int i = 1; i < N; i++) {
    fact[i] = (fact[i - 1] * 1ll * i) % mod;
  }
  int n;
  cin >> n;
  vector<int> V(2 * n);
  for (int &i : V) cin >> i;
  sort((V).begin(), (V).end());
  long long sum = 0;
  for (int i = 0; i < n; i++) sum -= V[i];
  for (int i = n; i < 2 * n; i++) sum += V[i];
  sum %= mod;
  sum *= npok(n + n, n);
  sum %= mod;
  cout << sum;
}
