#include <bits/stdc++.h>
#pragma GCC optimize("O2")
using namespace std;
const double PI = atan(1.0) * 4;
const int di[4] = {-1, 0, 1, 0};
const int dj[4] = {0, -1, 0, 1};
const long long INF = (long long)2e18 + 50;
const int maximum = numeric_limits<int>::max();
const int minimum = numeric_limits<int>::min();
const int mod = 998244353;
int binpow(int a, int b) {
  int res = 1;
  while (b > 0) {
    if (b & 1) res = 1ll * res * a % mod;
    a = 1ll * a * a % mod;
    b >>= 1;
  }
  return res;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int t;
  t = 1;
  while (t--) {
    int n;
    cin >> n;
    vector<int> a(2 * n);
    for (int i = 0; i < 2 * n; i++) {
      cin >> a[i];
    }
    sort(a.begin(), a.end());
    int frontsum = 0;
    for (int i = 0; i < n; i++) {
      frontsum += a[i];
      frontsum %= mod;
    }
    int backsum = 0;
    for (int i = n; i < 2 * n; i++) {
      backsum += a[i];
      backsum %= mod;
    }
    int ans = (backsum - frontsum) % mod;
    int factorialOfn = 1;
    for (int i = 1; i <= n; ++i) {
      ans = 1ll * ans * (n + i) % mod;
      factorialOfn = 1ll * factorialOfn * i % mod;
    }
    ans = 1ll * ans * binpow(factorialOfn, mod - 2) % mod;
    cout << (ans + mod) % mod << "\n";
  }
  return 0;
}
