#include<stdio.h>
#include<math.h>

#define N 1001

int visited[10000],n,M[10000][10000];

void dfs(int u)
{
  int V;
  visited[u]=1;
  for(V=0;V<=n;V++)
    {
      if(M[u][V]==1 && visited[V]==0)
	dfs(V);
    }
}

int main(void)
{
  int V,d,i,j,f[100000],count;
  double X;
  
  while(scanf("%d %d",&V,&d)!=EOF)
    {
      n=V;
      f[0]=1;
      f[1]=1;
      count=0;

      for(i=2;i<=V+1;i++)
	{
	  f[i]=f[i-1]+f[i-2];
	  if(f[i]>1001)f[i]=f[i]%1001;
	}
      
      for(i=0;i<3500;i++)
	{
	  for(j=0;j<3500;j++)
	    {
	      M[i][j]=0;
	    }
	}
      for(i=2;i<=V+1;i++)
	{
	  for(j=2;j<=V+1;j++)
	    {
	      X=(double)(f[i]-f[j]);

	      if(fabs(X)<d && i!=j)
		{
		  M[i][j]=1;
		  M[j][i]=1;
		}
	    }
	}

      for(i=0;i<10000;i++)
	{
	  visited[i]=0;
	}

      for(i=1;i<=V;i++)
	{
	  if(visited[i]!=1)
	    {
	      count++;
	      dfs(i);
	    }
	  //printf("%d\n",count);
	}
      printf("%d\n",count);
    }
  return 0;
}