#include<iostream>#include<algorithm>#include<cmath>#include<cstring>#include<string>#include<vector>#include<unordered_map>#include<unordered_set>#include<set>#include<map>#include<stack>#include<queue>#include<deque>#include<ctime>#defineendl'\n'#defineIOSios::sync_with_stdio(false); cin.tie(0); cout.tie(0)#definelowbit(x)(x&-x)usingnamespace std;constdouble pi =acos(-1);typedeflonglong ll;typedef pair<int,int> PII;typedef pair<long,long> PLL;constint N =1e5+10;ll a[N], b[N];intmain(){IOS;int _; cin >> _;while(_ --){ll n, s, t, h;cin >> n >> s >> t >> h;for(int i =1; i <= n -1; i ++) cin >> a[i];for(int i =1; i <= n -1; i ++) cin >> b[i];sort(a +1, a + n);sort(b +1, b + n);// s = 0 / t = 0a[0]= b[0]=1;a[n]= b[n]= h;ll suma =0, sumb =0;int l = t +1, r = n -1- s;for(int i = l; i <= r; i ++) suma += a[i], sumb += b[i];ll amx = suma + a[r +1], ami = suma + a[l -1];ll bmx = sumb + b[r +1], bmi = sumb + b[l -1];if(ami > bmx) cout <<1- h << endl;elseif(amx <= bmi) cout <<"IMPOSSIBLE"<< endl;else{ll ans =0;if(ami > bmi) ans =max(ans, a[l -1]-1);if(amx > bmx) ans =max(ans, h - b[r +1]);cout << sumb - suma +1- ans << endl;// 至少需要的差值減去可以更大的差值部分}}return0;}