#include<bits/stdc++.h>
using namespace std;
bool runnian(int n)
{
if((n%4==0&&n%100!=0)||n%400==0)
return true;
}
int month(int m,int n)
{
int result=30;
if(n==2)
{
if(runnian(m))
{
result=29;
}
else
{
result=28;
}
}
else if(n==1||n==3||n==5||n==7||n==8||n==10||n==12)
{
result=31;
}
return result;
}
struct Time{
int yyyy;
int mm;
int dd;
int hh;
int min;
};
int main()
{
struct Time time[2];
int N;
cin>>N;
int i;
int count=0;
long long int sum=0;
int minute[i];
for(i=0;i<N;i++)
{
cin>>minute[i];
}
for(i=0;i<N;i++)
{
for(int j=0;j<N-i-1;j++)
{
if(minute[j]>minute[j+1])
{
int temp=minute[j];
minute[j]=minute[j+1];
minute[j+1]=temp;
}
}
}
for(i=0;i<2;i++)
{
scanf("%d-%d-%d-%d:%d",&time[i].yyyy,&time[i].mm,&time[i].dd,&time[i].hh,&time[i].min);
}
int run=0,norun=0;
if(time[1].yyyy==time[0].yyyy)
{
if(runnian(time[1].yyyy))
{
sum+=366*24*60;
}
else
{
sum+=365*24*60;
}
}
else if(time[1].yyyy>time[0].yyyy)
{
for(i=time[0].yyyy;i<=time[1].yyyy;i++)
{
if(runnian(i))
{
run++;
}
else
{
norun++;
}
sum+=run*366*24*60+norun*365*24*60;
}
}
for(i=1;i<time[0].mm;i++)
{
if(i==2)
{
if(runnian(time[0].yyyy))
{
sum-=29*24*60;
}
else
{
sum-=28*24*60;
}
}
else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum-=31*24*60;
}
else
{
sum-=30*24*60;
}
}
for(i=time[1].mm+1;i<=12;i++)
{
if(i==2)
{
if(runnian(time[1].yyyy))
{
sum-=29*24*60;
}
else
{
sum-=28*24*60;
}
}
else if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
{
sum-=31*24*60;
}
else
{
sum-=30*24*60;
}
}
for(i=1;i<time[0].dd;i++)
{
sum-=24*60;
}
sum-=(time[0].hh*60+time[0].min);
for(i=time[1].dd+1;i<=month(time[1].yyyy,time[1].mm);i++)
{
sum-=24*60;
}
sum-=(24*60-time[1].hh*60-time[1].min);
for(i=0;i<N;i++)
{
sum-=minute[i];
if(sum>=0)
count++;
else if(sum<0)
break;
}
cout<<count;
return 0;
}