#include <bits/stdc++.h>
const int max_N = 1000005;
const int mod = 998244353;
long long n, a[max_N], fac[max_N], fac_inv[max_N];
long long read() {
  char c = getchar();
  long long ans = 0;
  bool flag = true;
  while (c < '0' || c > '9') flag &= (c != '-'), c = getchar();
  while (c >= '0' && c <= '9') ans = ans * 10 + c - '0', c = getchar();
  return flag ? ans : -ans;
}
void Write(long long x) {
  if (x < 10)
    putchar(x + '0');
  else
    Write(x / 10), putchar(x % 10 + '0');
}
long long max(long long x, long long y) { return x > y ? x : y; }
long long gcd(long long x, long long y) { return y ? gcd(y, x % y) : x; }
long long invs(long long x) {
  return x == 1 ? 1 : (mod - mod / x) * invs(mod % x) % mod;
}
long long binom(long long x, long long y) {
  return x < y || y < 0 ? 0 : fac[x] * fac_inv[y] % mod * fac_inv[x - y] % mod;
}
int main() {
  n = read();
  for (long long i = 1; i <= n * 2; i++) a[i] = read();
  for (long long i = fac[0] = 1; i <= n * 2; i++) fac[i] = fac[i - 1] * i % mod;
  fac_inv[n * 2] = invs(fac[n * 2]);
  for (long long i = n * 2; i; i--) fac_inv[i - 1] = fac_inv[i] * i % mod;
  std::sort(a + 1, a + 1 + n * 2);
  long long sum = 0;
  for (long long i = 1; i <= n; i++) sum -= a[i];
  for (long long i = n + 1; i <= n * 2; i++) sum += a[i];
  return Write(sum % mod * binom(2 * n, n) % mod), 0;
}
