#include using namespace std; int const blocksize=128; int fen[2048][2048]; void up(int x,int y,int z){for (int i=x; !(i&2048); i|=i+1) for (int j=y; !(j&2048); j|=j+1) fen[i][j]+=z;} int get(int x,int y){int z=0; for (int i=x; ~i; --(i&=i+1)) for (int j=y; j>=0; --(j&=j+1)) z+=fen[i][j]; return z;} vector y2z(200000,1<<28),z2y=y2z; struct vec3 {int x,y,z;} p[200000]; int main(){ ios::sync_with_stdio(false); int n; cin>>n; for (int i=3; i--;) for (int j=n,id; j--;) cin>>id, (&p[id-1].x)[i]=j; sort(p,p+n, [](vec3 a,vec3 b){ return a.x^b.x? a.x