/*
分析:
dp[i]=min(dp[i-1]+num1[i],dp[i-2]+num2[i]);
2012-06-25
*/
分析:
dp[i]=min(dp[i-1]+num1[i],dp[i-2]+num2[i]);
2012-06-25
*/
#include"stdio.h"
int min(int a,int b)
{
return a>b?b:a;
}
int main()
{
int n;
int k;
int dp[2010];
int num1[2010],num2[2010];
int i;
int temp;
int ans1,ans2,ans3,flag;
scanf("%d",&n);
while(n--)
{
scanf("%d",&k);
for(i=1;i<=k;i++) scanf("%d",&num1[i]);
for(i=2;i<=k;i++) scanf("%d",&num2[i]);
dp[0]=0;
dp[1]=num1[1];
for(i=2;i<=k;i++) dp[i]=min(dp[i-1]+num1[i],dp[i-2]+num2[i]);
temp=dp[k]+8*3600;
ans1=temp/3600;
temp%=3600;
ans2=temp/60;
temp%=60;
ans3=temp;
flag=0;
if(ans1>=12) {ans1%=12;flag=1;}
printf("%02d:%02d:%02d",ans1,ans2,ans3);
if(flag) printf(" pm\n");
else printf(" am\n");
}
return 0;
}