#include using namespace std; using ll=long long; using ld=long double; #define rep(i,n) for(ll i=0;i=0;i--) #define rep1(i,n) for(ll i=1;i<=n;i++) #define rep_lt(i,j,k) for(ll i=j;i void vcout(const Vec& vec){ for(auto& v:vec) cout< void vvcout(const Vec& vec){ for(auto& v:vec){ for(auto& k:v) cout< void chmax(T& a,const U& b){ if(a void chmin(T& a,const U& b) { if(a>b) a=b; } struct FastIO{ FastIO(){ ios::sync_with_stdio(false); cin.tie(nullptr); } }fastio; void YN(bool state){cout<<(state?"Yes\n":"No\n");} void CY(bool state){if(state)cout<<"Yes"< using namespace atcoder; using mint=modint998244353; //using mint=modint1000000007; using T=tuple; using P=pair; //考察 int main(){ ll n;cin>>n; vector cnt(2); ll ans=0; rep(i,n){ ll a,b; cin>>a>>b; if(a%8==0) ans+=b; else if(a%4==0) cnt[1]+=b; else if(a%2==0) cnt[0]+=b; } ll mix=min(cnt[0],cnt[1]); ans+=mix; cnt[0]-=mix; cnt[1]-=mix; ans+=cnt[1]/2; ans+=cnt[0]/3; cout<