   #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;      }