#include <bits/stdc++.h>
using namespace std;
template <typename _T>
inline void _DBG(const char *s, _T x) {
  cerr << s << " = " << x << "\n";
}
template <typename _T, typename... args>
void _DBG(const char *s, _T x, args... a) {
  while (*s != ',') cerr << *s++;
  cerr << " = " << x << ',';
  _DBG(s + 1, a...);
}
const long long P = 998244353;
long long fact[300007];
long long bin_pow(long long n, long long k) {
  if (k == 0) {
    return 1;
  }
  if (k & 1) {
    return (n * bin_pow(n, k - 1)) % P;
  }
  long long tmp = bin_pow(n, k / 2);
  return (tmp * tmp) % P;
}
long long inv(long long x) { return bin_pow(x, P - 2); }
long long choose(long long n, long long k) {
  long long tmp = fact[n] * inv(fact[k]);
  tmp %= P;
  return (tmp * inv(fact[n - k])) % P;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  ;
  int n;
  cin >> n;
  n *= 2;
  fact[0] = 1;
  for (int i = 1; i < n + 3; i++) {
    fact[i] = i * fact[i - 1];
    fact[i] %= P;
  }
  vector<long long> A(n);
  for (auto &a : A) {
    cin >> a;
  }
  sort((A).begin(), (A).end());
  long long total = 0;
  for (int i = 0; i < n; i++) {
    total += i < n / 2 ? -A[i] : A[i];
    total %= P;
  }
  total *= choose(n, n / 2);
  total %= P;
  cout << total << "\n";
  return 0;
}
