#include<bits/stdc++.h>
using namespace std;
string a,b,x,y,u,v,e,f;
int i,ans,c,d,c1,c2;
bool runnian(int n){
if((n%400==0)||(n%4==0&&n%100!=0))return true;
else return false;
}
bool panduan(int n){
int a=n/1000,b=(n/100)%10,c=((n/10)%100)%10,d=((n%1000)%100)%10;
int k=d*10+c,t=b*10+a;
if(n==c){
if(k<=c1){
return false;
}else return true;
}else if(n==d){
if(k>=c2){
return false;
}else return true;
}
if(1<=k&&k<=12&&1<=t&&t<=31){
if(k==4||k==6||k==9||k==11)
if(t<=30)return true;
else if(k==1||k==3||k==5||k==7||k==8||k==10||k==12)
if(t<=31)return true;
else if(k==2){
if(runnian(n)==true)
if(t<=29)return true;
else if(runnian(n)==false)
if(t<=28)return true;
}
}
return false;
}
int main(){
cin>>a>>b;
for(i=0;i<4;i++){
x[i]=a[i];
y[i]=b[i];
}
for(i=4;i<6;i++){
u[i]=a[i];
v[i]=b[i];
}
c=(x[0]-'0')*1000+(x[1]-'0')*100+(x[2]-'0')*10+(x[3]-'0');
d=(y[0]-'0')*1000+(y[1]-'0')*100+(y[2]-'0')*10+(y[3]-'0');
c1=(u[4]-'0')*10+(u[5]-'0');
c2=(v[4]-'0')*10+(v[5]-'0');
for(i=c;i<=d;i++){
if(panduan(i)==true)ans++;
}
cout<<ans<<endl;
return 0;
}