#include using namespace std; #define INF INT_MAX #define LINF LLONG_MAX #define forin(data) for(auto &i : data) #define debug(x) cerr << #x << " = " << x << endl; using ll = long long; using pi = pair; using vi = vector; using vii = vector; using vl = vector; void init(){ #ifdef LOCAL freopen("input.txt", "r", stdin); freopen("output.txt", "w", stdout); freopen("log.txt", "w", stderr); #else cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); #endif } bool sortStartTime(vi &v1, vi &v2){ return v1[0] < v2[0]; } bool sortIndex(vi &v1, vi &v2){ return v1[2] < v2[2]; } int main(){ init() int tc; cin >> tc; for(int i=1; i<=tc; i++){ bool check = true; int n, index = 0; cin >> n; string ans = ""; vii arr(n, vi(4)); for(int i=0; i> arr[i][0] >> arr[i][1]; arr[i][2] = i; } sort(arr.begin(), arr.end(), sortStartTime); int j, c; j = c = -1; for(int i=0; i= j){ j = -1; } if(arr[i][0] >= c){ c = -1; } if(j != -1 && c != -1){ check = false; break; } if(j == -1){ j = arr[i][1]; arr[i][3] = 0; //ans += "J"; //cout << "J Assigned! Cost: " << j << endl; }else{ c = arr[i][1]; arr[i][3] = 1; //ans += "C"; //cout << "C Assigned! Cost: " << c << endl; } } sort(arr.begin(), arr.end(), sortIndex); if(!check){ ans = "IMPOSSIBLE"; }else{ for(int i=0; i