#include <iostream>
#include <vector>
using namespace std;
vector<int> day={31,28,31,30,31,30,31,31,30,31,30,31};
bool isValidDate(int y,int m,int d){
if(m>=1 && m<=12){}
else return false;
if((y%4==0 && y%100 !=0) || y%400==0){
if(m==2){
if(d>=1&&d<=day[m-1]+1){}
else return false;
}else{
if(d>=1&& d<=day[m-1]){}
else return false;
}
}else{
if(d>=1&& d<=day[m-1]){}
else return false;
}
return true;
}
bool isValidRange(int y,int m,int d,int y_start,int m_start,int d_start,int y_end,int m_end,int d_end){
//月判断
if(y==y_start){
if(m<m_start)
return false;
//日判断
if(m==m_start){
if(d<d_start) return false;
}
}
else if(y==y_end){
if(m>m_end)
return false;
//日判断
if(m==m_end){
if(d>d_end) return false;
}
}
return true;
}
int main() {
string s1,s2;//分别定义开始日期和结束日期
cin>>s1>>s2;
//年起始和年终止
//s1表示输入的起始日期,s2表示输入的结束日期
int y_start=(s1[0]-'0')*10*10*10+(s1[1]-'0')*10*10+(s1[2]-'0')*10+(s1[3]-'0');
int m_start=(s1[4]-'0')*10+(s1[5]-'0');
int d_start=(s1[6]-'0')*10+(s1[7]-'0');
int y_end=(s2[0]-'0')*10*10*10+(s2[1]-'0')*10*10+(s2[2]-'0')*10+(s2[3]-'0');
int m_end=(s2[4]-'0')*10+(s2[5]-'0');
int d_end=(s2[6]-'0')*10+(s2[7]-'0');
int cnt=0;
for(int i=y_start;i<=y_end;i++){
int a=i/1000;
int b=(i-a*1000)/100;
int c=(i-a*1000-b*100)/10;
int d=i-a*1000-b*100-c*10;
int m=d*10+c;
int day=b*10+a;
if(isValidDate(i, m, day)&&isValidRange(i, m, day, y_start, m_start, d_start, y_end, m_end, d_end)){
cnt++;
}
}
//20011002
//20100102
cout<<cnt<<endl;
return 0;
}
// 64 位输出请用 printf("%lld")