//1225:金银岛
#include<bits/stdc++.h>
using namespace std;
int main(){
int k;
cin>>k;
while(k--){
double w,s;
double sum = 0;
double n[110],v[110];
double j[110];
cin>>w>>s;
for(int i = 0;i<s;i++){
cin>>n[i]>>v[i];
j[i] = v[i]/n[i]; //得到单价
//cout<<j[i]<<endl;
}
int m = s;
for(int i = 0;i<m;i++){ //把三个数组排序
for(int z = 0;z<m-1;z++){
if(j[z]<j[z+1]){
swap(j[z],j[z+1]);
swap(v[z],v[z+1]);
swap(n[z],n[z+1]);
}
}
}
int h = 0;
while(n[h]<=w&&h<m){ // 排完序过后while(第i件物品重量n[i]<=当前背包剩余空间w)
w-=n[h]; //减去当前容量
sum = sum+v[h];
h++;
//cout<<sum<<endl;
}
sum = w*j[h]+sum; //如果不够w乘上第i件物品单价
cout<<fixed<<setprecision(2)<<sum<<endl;
memset(j,0,sizeof(j)); //循环所有数组清零
memset(v,0,sizeof(v));
memset(n,0,sizeof(n));
}
return 0;
}