#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<complex>
const int mod=998244353,g=3,invg=998244354/3;
using namespace std;
int a[1200005],n,S,tr[1200005],wk[1200005],ans=0,jc[1200005]={1},ny[1200005]={1},t[1200005],t2[1200005];
int C(int x,int y){
	return 1ll*jc[x]*ny[y]%mod*ny[x-y]%mod;
}
int Power(int x,int y){
	int ret=1;
	while(y){
		if(y&1)ret=1ll*ret*x%mod;
		y>>=1,x=1ll*x*x%mod;
	}
	return ret;
}
int jj(int x){
	return 1ll*jc[x]*ny[x/2]%mod*Power(ny[2],x/2)%mod;
}
void GetTr(int l) {
	for(int i=0; i<l; i++)tr[i]=(tr[i>>1]>>1)|((i&1)?(l>>1):0);
}
void NTT(int a[],int n,int flag) {
	for(int i=0; i<n; i++)if(tr[i]<i)swap(a[i],a[tr[i]]);
	for(int i=1; i<n; i<<=1) {
		int w=Power(flag==1?g:invg,(mod-1)/(i<<1));
		wk[0]=1;
		for(int j=1; j<i; j++)wk[j]=1ll*wk[j-1]*w%mod;
		for(int j=0; j<n; j+=(i<<1)) {
			for(int k=0; k<i; k++) {
				int t=1ll*wk[k]*a[i+j+k]%mod;
				a[i+j+k]=(a[j+k]-t+mod)%mod;
				a[j+k]=(a[j+k]+t)%mod;
			}
		}
	}
	if(flag==-1)for(int i=0,t=Power(n,mod-2); i<n; i++)a[i]=1ll*a[i]*t%mod;
}
vector<int> Solve(int l,int r) {
	if(l==r){
		vector<int> ret;
		ret.resize(a[l]/2+1);
		ret[0]=1;
		for(int i=1;i<=a[l]/2;i++)ret[i]=1ll*C(a[l],i*2)*jj(i*2)%mod;
		return ret;
	}
	int mid=(l+r)/2;
	vector<int> a=Solve(l,mid);
	vector<int> b=Solve(mid+1,r);
	int len=1;
	while(len<a.size()+b.size()-1)len<<=1;
	GetTr(len);
	for(int i=0;i<len;i++)t[i]=t2[i]=0;
	for(int i=0;i<a.size();i++)t[i]=a[i];
	for(int i=0;i<b.size();i++)t2[i]=b[i];
	NTT(t,len,1),NTT(t2,len,1);
	for(int i=0;i<len;i++)t[i]=1ll*t[i]*t2[i]%mod;
	NTT(t,len,-1);
	a.resize(len);
	for(int i=0;i<len;i++)a[i]=t[i];
	return a;
}
int main() {
	scanf("%d",&n);
	int mx=0;
	for(int i=1,x;i<=n*2;i++)scanf("%d",&x),a[x]++,mx=max(mx,x);
	for(int i=1;i<=200000;i++)jc[i]=1ll*jc[i-1]*i%mod;
	ny[200000]=Power(jc[200000],mod-2);
	for(int i=199999;i;i--)ny[i]=1ll*ny[i+1]*(i+1)%mod;
	vector<int> res=Solve(1,mx);
	ans=jj(2*n);
	for(int i=1,o=mod-1;i<res.size()&&i<=n;i++,o=mod-o)ans=(ans+1ll*o*res[i]%mod*jj(2*n-2*i))%mod;
	printf("%d\n",ans);
	return 0;
}