#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")