#include<bits/stdc++.h>
using namespace std;
int x,sum=0,flag[25];
struct stu
{
int x1,y1;
}a[25];
void choose(int cnt)
{
if(cnt==x+1)
{
sum++;
return;
}
else
{
for(int i=0;i<x;i++)
{
if(flag[i]==1&&a[cnt].x1==i)
{
flag[i]=0;
choose(cnt+1);
flag[i]=1;
}
if(flag[i]==1&&a[cnt].y1==i)
{
flag[i]=0;
choose(cnt+1);
flag[i]=1;
}
}
}
}
int main()
{
cin>>x;
for(int i=0;i<x;i++)
{
cin>>a[i].x1>>a[i].y1;
}
for(int i=0;i<25;i++)
{
flag[i]=1;
}
choose(0);
cout<<sum;
return 0;
}