#include <stdio.h>
#include <iostream>
typedef long long int lld;
using namespace std;
int main()
{
int t;
lld n,m,y,answer;
char x,planks[100001];
scanf("%d",&t);
while(t--)
{
answer=1;
for(lld i=0;i<n;i++)
planks[i]=0;
scanf("%lld %lld",&n, &m);
for (lld i = 0; i < m; ++i)
{
cin>>x>>y;
planks[y-1]=x; //setting the planks from index 0
}
for (lld i = 0; i < n; ++i)
if(planks[i]!=0)
for(lld j = i+1; j < n; ++j)
if(planks[j]!=0)
{
if(planks[j]!=planks[i])
answer = ( (answer * (j-i)) % 1000000009 );
i=j+1;
break;
}
printf("%lld\n",answer);
}
fflush(stdin);
return 0;
}
CSNpbmNsdWRlIDxzdGRpby5oPgoJI2luY2x1ZGUgPGlvc3RyZWFtPgoJCgl0eXBlZGVmIGxvbmcgbG9uZyBpbnQgbGxkOwoJdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCWludCBtYWluKCkKCXsKCQlpbnQgdDsKCQlsbGQgbixtLHksYW5zd2VyOwoJCWNoYXIgeCxwbGFua3NbMTAwMDAxXTsKCgkJc2NhbmYoIiVkIiwmdCk7CgoJCXdoaWxlKHQtLSkKCQl7CgkJCWFuc3dlcj0xOwoJCQkKCQkJZm9yKGxsZCBpPTA7aTxuO2krKykKCQkJCXBsYW5rc1tpXT0wOwoKCQkJc2NhbmYoIiVsbGQgJWxsZCIsJm4sICZtKTsKCgkJCWZvciAobGxkIGkgPSAwOyBpIDwgbTsgKytpKQoJCQl7CgkJCQljaW4+Png+Pnk7CgkJCQlwbGFua3NbeS0xXT14OyAvL3NldHRpbmcgdGhlIHBsYW5rcyBmcm9tIGluZGV4IDAKCgkJCX0KCgkJCWZvciAobGxkIGkgPSAwOyBpIDwgbjsgKytpKQoJCQkJaWYocGxhbmtzW2ldIT0wKQoJCQkJCWZvcihsbGQgaiA9IGkrMTsgaiA8IG47ICsraikKCQkJCQkJaWYocGxhbmtzW2pdIT0wKQoJCQkJCQl7CgkJCQkJCQlpZihwbGFua3Nbal0hPXBsYW5rc1tpXSkKCQkJCQkJCQlhbnN3ZXIgPSAoIChhbnN3ZXIgKiAoai1pKSkgJSAxMDAwMDAwMDA5ICk7CgoJCQkJCQkJaT1qKzE7CgkJCQkJCQlicmVhazsJCgkJCQkJCQkKCQkJCQkJfQkJCgoJCQlwcmludGYoIiVsbGRcbiIsYW5zd2VyKTsJCgoJCX0KCgkJZmZsdXNoKHN0ZGluKTsKCQlyZXR1cm4gMDsKCX0=