// Program 30: Difference Between Two Dates import java.util.*; class DateDifference { static boolean leap(int y) { return y % 400 == 0 || (y % 4 == 0 && y % 100 != 0); } static int monthDays(int m, int y) { int[] days = {31,28,31,30,31,30,31,31,30,31,30,31}; if (m == 2 && leap(y)) { return 29; } return days[m - 1]; } static boolean valid(int d, int m, int y) { return y >= 1 && m >= 1 && m <= 12 && d >= 1 && d <= monthDays(m, y); } static long serial(int d, int m, int y) { long years = y - 1; long total = 365 * years + years / 4 - years / 100 + years / 400; for (int i = 1; i < m; i++) { total += monthDays(i, y); } return total + d; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int d1 = sc.nextInt(); int m1 = sc.nextInt(); int y1 = sc.nextInt(); int d2 = sc.nextInt(); int m2 = sc.nextInt(); int y2 = sc.nextInt(); if (!valid(d1, m1, y1) || !valid(d2, m2, y2)) { System.out.println("Invalid date"); return; } long difference = serial(d1, m1, y1) - serial(d2, m2, y2); if (difference < 0) { difference = -difference; } System.out.println("Days = " + difference); } }