#include <bits/stdc++.h>
using namespace std;
bool isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
bool isValidDate(int year, int month, int day) {
if (month < 1 || month > 12) return false;
int daysInMonth;
switch (month) {
case 2:
daysInMonth = isLeapYear(year) ? 29 : 28;
break;
case 4: case 6: case 9: case 11:
daysInMonth = 30;
break;
default:
daysInMonth = 31;
}
return day >= 1 && day <= daysInMonth;
}
bool isPalindromeDate(int year, int month, int day) {
string dateStr = to_string(year) + (month < 10 ? "0" : "") + to_string(month) + (day < 10 ? "0" : "") + to_string(day);
string reversedDateStr = string(dateStr.rbegin(), dateStr.rend());
return dateStr == reversedDateStr;
}
int countPalindromeDates(string startDate, string endDate) {
int count = 0;
int startYear = stoi(startDate.substr(0, 4));
int startMonth = stoi(startDate.substr(4, 2));
int startDay = stoi(startDate.substr(6, 2));
int endYear = stoi(endDate.substr(0, 4));
int endMonth = stoi(endDate.substr(4, 2));
int endDay = stoi(endDate.substr(6, 2));
for (int year = startYear; year <= endYear; ++year) {
for (int month = 1; month <= 12; ++month) {
for (int day = 1; day <= 31; ++day) {
if (!isValidDate(year, month, day)) {
continue;
}
if (isPalindromeDate(year, month, day)) {
++count;
}
}
}
}
return count;
}
int main() {
string startDate, endDate;
cin >> startDate >> endDate;
int result = countPalindromeDates(startDate, endDate);
cout << result << endl;
return 0;
}