#include using namespace std; using ll = long long; using ull = unsigned long long; template using max_heap = priority_queue; template using min_heap = priority_queue, greater<>>; ll ll_min = numeric_limits::min(); ll ll_max = numeric_limits::max(); ll ALPHABET_N = 26; static const ll INF = ll_max / 10; #define rep(i, n) for (ll i = (ll)0; i < (ll)n; i++) #define rep_(i, k, n) for (ll i = (ll)k; i < (ll)n; i++) #define all(a) a.begin(), a.end() int main() { ios::sync_with_stdio(false); cin.tie(0); ll n; cin >> n; ll cnt1 = 0, cnt2 = 0, over3 = 0; rep(i, n) { ll a, b; cin >> a >> b; ll cnt = 0; while (a % 2 == 0 && cnt < 3) { a /= 2; cnt++; } if (cnt == 1) cnt1 += b; else if (cnt == 2) cnt2 += b; else if (cnt >= 3) over3 += b; } ll ans = over3; ll pair1_2 = min(cnt1, cnt2); ans += pair1_2; cnt1 -= pair1_2; cnt2 -= pair1_2; ans += cnt1 / 3; ans += cnt2 / 2; cout << ans << endl; return 0; }