#include <iostream>
#include <vector>
using namespace std;
int main() {
int n;
cin >> n;
vector<pair<int, int>> contests(n);
for (int i = 0; i < n; ++i) {
cin >> contests[i].first >> contests[i].second;
}
int lowerBound = -1000000000;
int upperBound = 1000000000;
int currentRating = 0;
for (int i = 0; i < n; ++i) {
int change = contests[i].first;
int division = contests[i].second;
if (division == 1) {
lowerBound = max(lowerBound, 1900);
} else {
upperBound = min(upperBound, 1899);
}
if (lowerBound > upperBound) {
cout << "Impossible\n";
return 0;
}
currentRating += change;
}
if (upperBound > 100000000) {
cout << "Infinity\n";
} else {
cout << upperBound << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIAogICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBjb250ZXN0cyhuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgY2luID4+IGNvbnRlc3RzW2ldLmZpcnN0ID4+IGNvbnRlc3RzW2ldLnNlY29uZDsKICAgIH0KICAgIAogICAgaW50IGxvd2VyQm91bmQgPSAtMTAwMDAwMDAwMDsgCiAgICBpbnQgdXBwZXJCb3VuZCA9IDEwMDAwMDAwMDA7ICAKICAgIGludCBjdXJyZW50UmF0aW5nID0gMDsKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyArK2kpIHsKICAgICAgICBpbnQgY2hhbmdlID0gY29udGVzdHNbaV0uZmlyc3Q7CiAgICAgICAgaW50IGRpdmlzaW9uID0gY29udGVzdHNbaV0uc2Vjb25kOwogICAgICAgIAogICAgICAgIGlmIChkaXZpc2lvbiA9PSAxKSB7CiAgICAgICAgICAgIGxvd2VyQm91bmQgPSBtYXgobG93ZXJCb3VuZCwgMTkwMCk7CiAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgdXBwZXJCb3VuZCA9IG1pbih1cHBlckJvdW5kLCAxODk5KTsKICAgICAgICB9CiAgICAgICAgCiAgICAgICAgaWYgKGxvd2VyQm91bmQgPiB1cHBlckJvdW5kKSB7CiAgICAgICAgICAgIGNvdXQgPDwgIkltcG9zc2libGVcbiI7CiAgICAgICAgICAgIHJldHVybiAwOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBjdXJyZW50UmF0aW5nICs9IGNoYW5nZTsKICAgIH0KICAgIAogICAgaWYgKHVwcGVyQm91bmQgPiAxMDAwMDAwMDApIHsKICAgICAgICBjb3V0IDw8ICJJbmZpbml0eVxuIjsKICAgIH0gZWxzZSB7CiAgICAgICAgY291dCA8PCB1cHBlckJvdW5kIDw8ICJcbiI7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9Cg==