
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
#include <cmath>
#include <iomanip>
#include <cstring>

std::ifstream fin("input.txt");
std::ofstream fout("output.txt");

int main(){
    std::ios_base::sync_with_stdio(false);
    std::cin.tie(NULL);
    std::cout.tie(NULL);
    std::cout << std::setprecision(6) << std::fixed << '\n';
    int Q;
    std::cin >> Q;
    while(Q --){
        int n, m;
        std::cin >> n >> m;
        int x[n], pos;
        long double ans = 0;
        for(int i=0; i<n; i++) std::cin >> x[i];

        for(pos=n-1; pos>=0 and x[pos] == pos+1; pos--);

        if(pos == -1) ans = 1;

        while(m --){
            int p;
            long double prob;
            std::cin >> p >> prob; p--;
            if(p >= pos){
                ans = 1.0 - (1.0 - ans) * (1.0 - prob);
            }
        }
        std::cout << ans << '\n';
    }

    return 0;

}