#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;
int top_line = 1e6 + 10; /*循环次数的上限*/
const int maxn = 10 + 5;
int a[maxn];
int b[maxn];
int c[maxn]; /*以上三行分别代表不同人a, b, c的集合*/
int cnt; /*the number of awaken*/
int n;
void next_time()
{
for(int i = 0; i < n; i++)
{
c[i] = c[i] % ( a[i] + b[i]); /**让c始终介于0与a+b之间**/
if(c[i] == a[i] && cnt >= n - cnt)
c[i] = 0;
c[i]++; /*只有awaken < sleeping 时才累加*/
}
return ;
}
bool is_all_awaken()
{
cnt = 0;
for(int i = 0; i < n; i++)
{
if(c[i] <= a[i])
cnt++;
}
if(cnt == n)
return true;
return false;
}
int main()
{
int cases = 0;
while(cin >> n && n)
{
memset(a, 0, sizeof(a));
memset(b, 0, sizeof(b));
memset(c, 0, sizeof(c));
for(int i = 0; i < n; i++)
cin >> a[i] >> b[i] >> c[i];
int flag = 0;
int i;
for(i = 1; i <= top_line; i++)
{
if(is_all_awaken())
break;
next_time(); /*进入下一时间段*/
}
if(i <= top_line)
printf("Case %d: %d\n", ++cases, i);
else
printf("Case %d: %d\n", ++cases, -1);
}
return 0;
}