#include<stdio.h>#include<string.h>#define MAXD 50010#define zero 1e-8#define INF 2000000struct cistern{ int b, h, s;}c[MAXD];int N;double fabs(double x){ return x < 0 ? -x : x;}int dcmp(double x){ return fabs(x) < zero ? 0 : (x < 0 ? -1 : 1);}void init(){ int i, j, k, w, d; scanf("%d", &N); for(i = 0; i < N; i ++) { scanf("%d%d%d%d", &c[i].b, &c[i].h, &w, &d); c[i].s = w * d; }}void solve(){ int i, j, k; double max, min, mid, v, ans; scanf("%lf", &v); min = 0, max = INF; for(k = 0; k < 50; k ++) { mid = (max + min) / 2; ans = 0; for(i = 0; i < N; i ++) { if(dcmp(mid - c[i].b - c[i].h) >= 0) ans += c[i].h * c[i].s; else if(dcmp(mid - c[i].b) > 0) ans += (mid - c[i].b) * c[i].s; } if(dcmp(ans - v) < 0) min = mid; else max = mid; } if(dcmp(mid - INF) == 0) printf("OVERFLOWn"); else printf("%.2lfn", mid);}int main(){ int t; scanf("%d", &t); while(t --) { init(); solve(); } return 0;}