#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
#include <vector>
#include <utility>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <map>
#include <set>
#include <stack>
#include <queue>
 
using namespace std;
 
#define pb(n)	push_back(n)
#define mp(n,m) make_pair(n,m)
#define fi 	first
#define se 	second
#define all(r) (r).begin(),(r).end()

#define rep(i,n) for(int i=0; i<(n); i++)
#define repc(i,a,b) for(int i=(a); i<(b); i++)

typedef long long ll;
typedef vector<int> vi;
typedef vector<ll> vl;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
 
const int IMAX=((1<<30)-1)*2+1;
const double EPS=1e-10;
//int mod=1000000007


bool is_Leap(int n){
	if(n%400==0)return true;
	if(n%100==0)return false;
	if(n%4==0)return true;
	return false;
}


int main(){
	int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
	int y1,y2,m1,m2,d1,d2;
	ll ans=0;
	while(cin>>y1>>m1>>d1>>y2>>m2>>d2){
		ans=0;
		if(d1==-1&&d2==-1)break;
		if(y1<y2){
			if(is_Leap(y1)){
				ans+=b[m1-1]-d1+1;
				for(int i=m1; i<12; i++){
					ans+=b[i];
				}
			}
			else{
				ans+=a[m1-1]-d1+1;
				for(int i=m1; i<12; i++){
					ans+=a[i];
				}
			}
			m1=1;
			d1=1;
		}
		y1++;
		while(y1<y2){
			if(is_Leap(y1))ans+=366;
			else ans+=365;
			y1++;
		}
		for(int i=m1-1; i<m2-1; i++){
			if(is_Leap(y1))ans+=b[i];
			else ans+=a[i];
			//d1=1;
		}
		ans+=d2-d1;
		cout<<ans<<endl;
	}
}