#include <bits/stdc++.h>

using namespace std;
typedef long long int ll;

void solve() {
    int n, m;
    cin >> n >> m;
    vector<int> arr(n);
    for(auto &x : arr) cin >> x;
    vector<pair<int,double>> prob(m);
    for(int i = 0; i < m; i++) cin >> prob[i].first >> prob[i].second;

    int last = 0;
    for(int i=n-1; i>=0 ; i--) {
        if(arr[i]!=i+1) {
            last = i + 1;
            break;
        }
    }
    
    double res = 0, curr = 1;
    if(last) {
        for(int i = 0; i < m; i++) {
            if(prob[i].first>=last) {
                res+=curr*prob[i].second;
                curr=curr*(1-prob[i].second);
            }
        }
    } else res = 1;
    cout << fixed << setprecision(7) << res << endl;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    int t = 1;
    cin>>t;
    while(t--){
        solve();
    }
}