/*
TASK:notalike
LANG:C++
*/
#include <iostream>
using namespace std;
void work(int n, int p, int q)
{
 //dp[i][j] - state with i stones remaining and j stones last move
 int dp[1001][21]; int i,j,k; //-1 - INDEFINITE   1 - WIN   2 - LOSE
 for (i=0;i<1001;i++) for (j=0;j<21;j++) dp[i][j]=-1;
 for (i=0;i<p;i++) for (j=0;j<21;j++) dp[i][j]=2; 
 for (i=p;i<=n;i++) //state
  for (j=p;j<=q && i+j<=n;j++) //state
  {
   bool win=false;
   for (k=p;k<=q;k++)
   {
    if (k==j) continue;
    if (i-k>=0 && dp[i-k][k]==2) { win=true; break; }
   }
   if (win) dp[i][j]=1; else dp[i][j]=2;
  }
/* for (i=0;i<=n;i++)
  for (j=p;j<=q;j++)
  {
   if (i+j>n) continue;
   if (dp[i][j]==2)
     cout<<i<<" "<<j<<" "<<"LOSE"<<endl; 
     else
   if (dp[i][j]==1)
     cout<<i<<" "<<j<<" "<<"WIN"<<endl;   
     else
       cout<<i<<" "<<j<<" "<<"UNDEFINED"<<endl;  
  }*/
 bool second=true; 
 for (i=p;i<=q;i++)
  if (dp[n-i][i]==2) { second=false; break; }
 if (second) cout<<0<<endl; else
 {
  for (i=q;i>=p;i--)
   if (dp[n-i][i]==2) { cout<<i<<endl; break; }
 }
}
int main()
{
 int n1,p1,q1; 
 cin>>n1>>p1>>q1;
 int n2,p2,q2;
 cin>>n2>>p2>>q2;
 work(n1,p1,q1);
 work(n2,p2,q2);
 return 0;
}
