#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 rating = 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;
}
rating += change;
}
if (upperBound > 100000000) {
cout << "Infinity\n";
} else {
cout << rating << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewogICAgaW50IG47CiAgICBjaW4gPj4gbjsKICAgIAogICAgdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBjb250ZXN0cyhuKTsKICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgKytpKSB7CiAgICAgICAgY2luID4+IGNvbnRlc3RzW2ldLmZpcnN0ID4+IGNvbnRlc3RzW2ldLnNlY29uZDsKICAgIH0KICAgIAogICAgaW50IGxvd2VyQm91bmQgPSAtMTAwMDAwMDAwMDsgCiAgICBpbnQgdXBwZXJCb3VuZCA9IDEwMDAwMDAwMDA7ICAKICAgIGludCByYXRpbmcgPSAwOwogICAgCiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGludCBjaGFuZ2UgPSBjb250ZXN0c1tpXS5maXJzdDsKICAgICAgICBpbnQgZGl2aXNpb24gPSBjb250ZXN0c1tpXS5zZWNvbmQ7CiAgICAgICAgCiAgICAgICAgaWYgKGRpdmlzaW9uID09IDEpIHsKICAgICAgICAgICAgbG93ZXJCb3VuZCA9IG1heChsb3dlckJvdW5kLCAxOTAwKTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICB1cHBlckJvdW5kID0gbWluKHVwcGVyQm91bmQsIDE4OTkpOwogICAgICAgIH0KICAgICAgICAKICAgICAgICBpZiAobG93ZXJCb3VuZCA+IHVwcGVyQm91bmQpIHsKICAgICAgICAgICAgY291dCA8PCAiSW1wb3NzaWJsZVxuIjsKICAgICAgICAgICAgcmV0dXJuIDA7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIHJhdGluZyArPSBjaGFuZ2U7CiAgICB9CiAgICAKICAgIGlmICh1cHBlckJvdW5kID4gMTAwMDAwMDAwKSB7CiAgICAgICAgY291dCA8PCAiSW5maW5pdHlcbiI7CiAgICB9IGVsc2UgewogICAgICAgIGNvdXQgPDwgcmF0aW5nIDw8ICJcbiI7CiAgICB9CiAgICAKICAgIHJldHVybiAwOwp9Cg==