#include <stdio.h>
#include <string.h>
char str1[10000][100001]; //存放范文
char str2[100001]; //存放输入
int main(void)
{
int i = 0, j, len1, len2, time, minn, top = 0;
char stack[80];
double t = 0;
scanf("%[^\n]", str1[i]);
getchar();
while(strcmp(str1[i], "EOF"))
{
for(j = 0; ;j++) //用栈还原真正字符串
{
if(str1[i][j] == '\0')
break;
if(str1[i][j] == '<')
{
if(top == 0)
;
else
top--;
}
else
{
stack[top++] = str1[i][j];
stack[top] = '\0';
}
}
top = 0; //清空栈
strcpy(str1[i], stack);
scanf("%[^\n]", str1[++i]);
getchar();
}
scanf("%[^\n]", str2);
getchar();
i = 0;
while(strcmp(str2, "EOF"))
{
top = 0; //清空栈
len1 = strlen(str1[i]);
len2 = strlen(str2);
for(j = 0;j < len2 ;j++) //用栈还原真正字符串
{
if(str2[j] == '<')
{
if(top == 0)
;
else
top--;
}
else
{
stack[top++] = str2[j];
stack[top] = '\0';
}
}
strcpy(str2, stack);
len2 = strlen(str2); //更新输入字符串长
minn = len1 > len2 ? len2 : len1; //取最短的计入循环边界
for(j = 0; j < minn ; j++) //开始计数
{
if(str1[i][j] == str2[j])
t++;
}
i++;
scanf("%[^\n]", str2);
getchar();
}
scanf("%d", &time);
printf("%ld", ( long int)(t / (time / 60) + 0.5));
return 0;
}