#include #include #include using namespace std; #define MAXN 100002 void input() { freopen("building.in","r",stdin); freopen("building.out","w",stdout); cin.sync_with_stdio(0); cin.tie(0); } struct node { int parent; int area; int weight; int strength; int weakest_parent; }; int n; node parts[MAXN]; int natovarenost[MAXN]; int main() { input(); cin>>n; for(int i=1;i<=n;i++) { cin>>parts[i].parent>>parts[i].area>>parts[i].weight>>parts[i].strength; parts[i].weakest_parent = parts[i].parent; int p = parts[i].parent; if(p) { parts[p].area-=parts[i].area; if(parts[p].area<0) { cout<<"IMPOSSIBLE "<