#include <iostream>
using namespace std;
int a[410],b[410],dp[410][1010],t;
void inp(int x)
{
cin>>a[x]>>b[x];
a[x]*=2;
if(b[x]==0)
{
inp(2*x);
inp(2*x+1);
}
}
void dfs(int x,int ti)
{
int i,j;
if(b[x]!=0)
{
for(i=1;i<=b[x]&&ti+5*i<=t;i++)
{
dp[x][ti+5*i]=dp[x][ti]+i;
}
return ;
}
dfs(2*x,t+a[2*x]);
dfs(2*x+1,t+a[2*x+1]);
for(i=0;i<=t-ti;i++)
{
for(j=0;j<=t-ti-i;j++)
{
dp[x][ti+i+j]=max(dp[x][ti+i+j],dp[x*2][ti+i]+dp[x*2+1][ti+j]);
}
}
}
int main()
{
int i,j,k,x,y;
cin>>t;
t--;
inp(1);
dfs(1,a[1]);
cout<<dp[1][t]<<endl;
return 0;
}