#include <bits/stdc++.h>
using namespace std;
inline long long in() {
  int32_t x;
  scanf("%d", &x);
  return x;
}
inline long long lin() {
  long long x;
  scanf("%lld", &x);
  return x;
}
const long long maxn = 1e6 + 10;
long long pref[maxn];
long long c[maxn], d[maxn];
int32_t main() {
  long long maxi = 1e18, mini = -1e18;
  long long n = in();
  for (long long i = 0; i < n; i++) {
    c[i] = in(), d[i] = in();
    pref[i] = c[i] + (i ? pref[i - 1] : 0);
    if (i == 0) {
      if (d[i] == 1)
        mini = 1900;
      else
        maxi = 1899;
    } else {
      if (d[i] == d[i - 1]) {
        if (d[i] == 1) {
          long long preMinimum = 1900 - pref[i - 1];
          mini = max(mini, preMinimum);
        } else {
          long long preMaximum = 1899 - pref[i - 1];
          maxi = min(maxi, preMaximum);
        }
      } else {
        if (d[i - 1] == 2) {
          long long preMinimum = 1900 - pref[i - 1];
          mini = max(mini, preMinimum);
        } else {
          long long preMaximum = 1899 - pref[i - 1];
          maxi = min(maxi, preMaximum);
        }
      }
    }
  }
  if (mini <= maxi) {
    if (maxi < 1e18)
      cout << maxi + pref[n - 1] << "\n";
    else
      return cout << "Infinity\n", 0;
  } else
    return cout << "Impossible" << endl, 0;
}
