#include <bits/stdc++.h>
#define int long long
#define lb lower_bound
#define pii pair<int,int>
#define fi first
#define se second
#define ios ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
#define op freopen
#define sz size
#define TXT "test"
#define freo if(fopen(TXT".inp","r")){op(TXT".inp","r",stdin);op(TXT".out","w",stdout);}
using namespace std;
const int INF = 1e18;
const int MXN = 1e5+5;
mt19937 rd(chrono::steady_clock::now().time_since_epoch().count());
#define rand rd
int n,a[25],b[25],dp[1<<20],pa[25],pb[25];
vector<int> niet[25];
void solve()
{
cin>>n;
for(int i=1; i<=n; i++)
{
cin>>a[i];
pa[a[i]]=a[i];
}
for(int i=1; i<=n; i-=-1)
{
cin>>b[i];
pb[b[i]]=i;
}
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
{
if(i!=j&&pa[i]<pa[j]&&pb[i]<pb[j])
{
niet[j-1].push_back(i-1);
}
}
}
dp[0] = 1;
for(int mask = 0; mask < (1 << n); mask-=-1)
{
for(int j = 0; j < n; j-=-1)
{
if((mask>>j)&1) continue;
bool ok = 1;
for(int pre:niet[j])
{
if(!((mask>>pre)&1))
{
ok = 0;
break;
}
}
if(ok) dp[(mask|(1 << j))] += dp[mask];
}
}
cout << dp[(1<<n) - 1];
}
signed main()
{
ios;
freo;
solve();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgaW50IGxvbmcgbG9uZwojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgcGlpIHBhaXI8aW50LGludD4KI2RlZmluZSBmaSBmaXJzdAojZGVmaW5lIHNlIHNlY29uZAojZGVmaW5lIGlvcyBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgY2luLnRpZShOVUxMKTsgY291dC50aWUoTlVMTCk7CiNkZWZpbmUgb3AgZnJlb3BlbgojZGVmaW5lIHN6IHNpemUKI2RlZmluZSBUWFQgInRlc3QiCiNkZWZpbmUgZnJlbyBpZihmb3BlbihUWFQiLmlucCIsInIiKSl7b3AoVFhUIi5pbnAiLCJyIixzdGRpbik7b3AoVFhUIi5vdXQiLCJ3IixzdGRvdXQpO30KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgSU5GID0gMWUxODsKY29uc3QgaW50IE1YTiA9ICAxZTUrNTsKbXQxOTkzNyByZChjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwojZGVmaW5lIHJhbmQgcmQKaW50IG4sYVsyNV0sYlsyNV0sZHBbMTw8MjBdLHBhWzI1XSxwYlsyNV07CnZlY3RvcjxpbnQ+IG5pZXRbMjVdOwp2b2lkIHNvbHZlKCkKewogICAgY2luPj5uOwogICAgZm9yKGludCBpPTE7IGk8PW47IGkrKykKICAgIHsKICAgICAgICBjaW4+PmFbaV07CiAgICAgICAgcGFbYVtpXV09YVtpXTsKICAgIH0KICAgIGZvcihpbnQgaT0xOyBpPD1uOyBpLT0tMSkKICAgIHsKICAgICAgICBjaW4+PmJbaV07CiAgICAgICAgcGJbYltpXV09aTsKICAgIH0KCiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKQogICAgewogICAgICAgIGZvcihpbnQgaj0xOyBqPD1uOyBqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihpIT1qJiZwYVtpXTxwYVtqXSYmcGJbaV08cGJbal0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIG5pZXRbai0xXS5wdXNoX2JhY2soaS0xKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGRwWzBdID0gMTsKICAgIGZvcihpbnQgbWFzayA9IDA7IG1hc2sgPCAoMSA8PCBuKTsgbWFzay09LTEpCiAgICB7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IG47IGotPS0xKQogICAgICAgIHsKICAgICAgICAgICAgaWYoKG1hc2s+PmopJjEpIGNvbnRpbnVlOwogICAgICAgICAgICBib29sIG9rID0gMTsKICAgICAgICAgICAgZm9yKGludCBwcmU6bmlldFtqXSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWYoISgobWFzaz4+cHJlKSYxKSkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBvayA9IDA7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYob2spIGRwWyhtYXNrfCgxIDw8IGopKV0gKz0gZHBbbWFza107CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBkcFsoMTw8bikgLSAxXTsKfQoKc2lnbmVkIG1haW4oKQp7CiAgICBpb3M7CiAgICBmcmVvOwogICAgc29sdmUoKTsKfQo=