#include<iostream>
#include<math.h>
#include<cstring>
using namespace std;
double g[1010100];
int main(){
	int t;
	cin>>t;
	while(t--){
		memset(g,0,sizeof(g));
		int s,m;
		cin>>s>>m;
		int o,p=0,b=0;
		for(int i=1;i<=s;i++){
			cin>>o;
			if(i!=o){
				p=i;	
			}
		}
		//printf("%d\n",p);
		double ans=1.000000,pp;
		for(int i=1;i<=m;i++){
			int y;
			cin>>y;
			cin>>pp;
			if(y>=p){
				ans*=(1-pp);
			}			
		}
		if(p==0){
			printf("1.000000\n");
			continue;
		}
	//	for(int i=p;i<=s;i++){
	//		if(fabs(g[i])>1e-8){
	//			ans*=(1-g[i]);
			//	printf("%lld\n",)
	//		}
	//	}
		printf("%.6lf\n",1.0-ans);
	}
}

