#include <cstdio>
#include <cstring>
using namespace std;
typedef long long LL;
const int maxn=
2e3+
5;
const int mod=
998244353;
int a[maxn],b[maxn];
LL cnt0,cnt1;
LL dp[maxn][
2];
int n,m;
int main()
{
int t;
scanf(
"%d",&t);
while(t--)
{
scanf(
"%d%d",&n,&m);
for(
int i=
0;i<n;i++)
{
scanf(
"%d",&a[i]);
}
for(
int i=
0;i<m;i++)
{
scanf(
"%d",&b[i]);
}
LL ans=
0;
memset(dp,
0,
sizeof(dp));
for(
int i=
0;i<n;i++)
{
LL cnt0=
1,cnt1=
0;
for(
int j=
0;j<m;j++)
{
if(a[i]==b[j])
{
dp[j][
0]=(dp[j][
0]+cnt0)%mod;
dp[j][
1]=(dp[j][
1]+cnt1)%mod;
ans=(ans+cnt0+cnt1)%mod;
}
else if(a[i]>b[j])
{
cnt1=(cnt1+dp[j][
0])%mod;
}
else
{
cnt0=(cnt0+dp[j][
1])%mod;
}
}
}
printf(
"%I64d\n",ans);
}
return 0;
}