#include<iostream>
using namespace std;
int ans=-1,a[666],b[666],son[666][4],cnt=1;
void gg(int wz) {
cin>>a[wz]>>b[wz];
if(!b[wz]) {
son[wz][1]=++cnt;
gg(cnt);
son[wz][2]=++cnt;
gg(cnt);
}
}
void dfs(int wz,int time,int wt,int draw) {
if(!wz)return;
wt+=a[wz];
while(b[wz]&&time-wt*2>=5) {
time-=5;
draw++;
b[wz]--;
}
if(time-wt*2<5) {
ans=max(draw,ans);
return;
}
dfs(son[wz][1],time,wt,draw);
dfs(son[wz][2],time,wt,draw);
}
int main() {
int n;
cin>>n;
gg(1);
// for(int i=1; i<=n; i++)
// cin>>a[i]>>b[i];
dfs(1,n,0,0);
cout<<ans;
return 0;
}