#include#include #include using namespace std ; int max (int a ,int b ) { return a >b ?a :b ; } int main() { int T ,i ,j ,n ,m ,num1 [510 ],num2 [510 ]; int dp [510 ][510 ]; scanf ("%d" ,&T ); while(T --) { scanf ("%d" ,&n ); for(i =1 ;i <=n ;i ++) scanf ("%d" ,&num1 [i ]); scanf ("%d" ,&m ); for(i =1 ;i <=m ;i ++) scanf ("%d" ,&num2 [i ]); int Max ; for(i =1 ;i <=n ;i ++) { Max =0 ; for(j =1 ;j <=m ;j ++) { if(num2 [j ]<num1 [i ]&&Max <dp [i -1 ][j ]) { Max =dp [i -1 ][j ]; } dp [i ][j ]=dp [i -1 ][j ]; if(num1 [i ]==num2 [j ]) { dp [i ][j ]=Max +1 ; } } } Max =0 ; for(i =1 ;i <=m ;i ++) if(dp [n ][i ]>Max ) Max =dp [n ][i ]; printf ("%d\n" ,Max ); if(T )printf ("\n" ); } return 0 ; }