import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Main {
// 백준 4883번 삼각 그래프
int k
= Integer.
parseInt(br.
readLine()); ArrayList<String> list = new ArrayList<String>();
if(k==0) return;
int[][] arr = new int[k][3];
int[][] dp = new int[k][3];
int index = 0;
int number = 1;
boolean flag = true;
while(flag) {
int q = 0; // index
while(st.hasMoreTokens()) {
int data
= Integer.
parseInt(st.
nextToken()); arr[index][q] = data;
dp[index][q] = data;
q++;
}
index++;
if(index == k) {
index = 0;
dp[0][2] += arr[0][1];
dp[1][0] += dp[0][1];
dp[1][1] += min(dp[1][0], dp[0][1], dp[0][2]);
dp[1][2] += min(dp[1][1], dp[0][1], dp[0][2]);
for(int i=2;i<arr.length;i++) {
for(int t=0;t<3;t++) {
if(t == 0)
dp[i][t] += min(dp[i-1][0], dp[i-1][1]);
if(t == 1)
dp[i][t] += min(min(dp[i][0], dp[i-1][0]), min(dp[i-1][1], dp[i-1][2]));
if(t == 2)
dp[i][t] += min(dp[i][1], dp[i-1][1], dp[i-1][2]);
}
}
list.add(number+". " + dp[k-1][1]);
k
= Integer.
parseInt(br.
readLine()); arr = new int[k][3];
if(k == 0) {
flag = false;
}else {
number++;
}
}
}
for(int i=0;i<list.size();i++) {
System.
out.
println(list.
get(i
)); }
}
public static int min(int a, int b) {
return a > b ? b : a;
}
public static int min(int a, int b, int c) {
if(a<b) {
if(a<c) return a;
else return c;
}else if(b<c){
return b;
}else {
return c;
}
}
}
aW1wb3J0IGphdmEuaW8uQnVmZmVyZWRSZWFkZXI7CmltcG9ydCBqYXZhLmlvLklucHV0U3RyZWFtUmVhZGVyOwppbXBvcnQgamF2YS51dGlsLkFycmF5TGlzdDsKaW1wb3J0IGphdmEudXRpbC5TdHJpbmdUb2tlbml6ZXI7CgpwdWJsaWMgY2xhc3MgTWFpbiB7CgkvLyDrsLHspIAgNDg4M+uyiCDsgrzqsIEg6re4656Y7ZSECglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB0aHJvd3MgRXhjZXB0aW9uewoJCQoJCUJ1ZmZlcmVkUmVhZGVyIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKCQlpbnQgayA9IEludGVnZXIucGFyc2VJbnQoYnIucmVhZExpbmUoKSk7CgkJQXJyYXlMaXN0PFN0cmluZz4gbGlzdCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwoJCWlmKGs9PTApIHJldHVybjsKCQlpbnRbXVtdIGFyciA9IG5ldyBpbnRba11bM107CgkJaW50W11bXSBkcCA9IG5ldyBpbnRba11bM107CgkJU3RyaW5nVG9rZW5pemVyIHN0ID0gbnVsbDsKCQlpbnQgaW5kZXggPSAwOwoJCWludCBudW1iZXIgPSAxOwoJCWJvb2xlYW4gZmxhZyA9IHRydWU7CgkJd2hpbGUoZmxhZykgewoJCQlzdCA9IG5ldyBTdHJpbmdUb2tlbml6ZXIoYnIucmVhZExpbmUoKSwgIiAiKTsKCQkJaW50IHEgPSAwOyAvLyBpbmRleAoJCQl3aGlsZShzdC5oYXNNb3JlVG9rZW5zKCkpIHsKCQkJCWludCBkYXRhID0gSW50ZWdlci5wYXJzZUludChzdC5uZXh0VG9rZW4oKSk7CgkJCQlhcnJbaW5kZXhdW3FdID0gZGF0YTsgCgkJCQlkcFtpbmRleF1bcV0gPSBkYXRhOyAKCQkJCXErKzsKCQkJfQoJCQlpbmRleCsrOwoJCQlpZihpbmRleCA9PSBrKSB7CgkJCQlpbmRleCA9IDA7CgkJCQlkcFswXVsyXSArPSBhcnJbMF1bMV07CgkJCQlkcFsxXVswXSArPSBkcFswXVsxXTsKCQkJCWRwWzFdWzFdICs9IG1pbihkcFsxXVswXSwgZHBbMF1bMV0sIGRwWzBdWzJdKTsKCQkJCWRwWzFdWzJdICs9IG1pbihkcFsxXVsxXSwgZHBbMF1bMV0sIGRwWzBdWzJdKTsKCQkJCWZvcihpbnQgaT0yO2k8YXJyLmxlbmd0aDtpKyspIHsKCQkJCQlmb3IoaW50IHQ9MDt0PDM7dCsrKSB7CgkJCQkJCWlmKHQgPT0gMCkKCQkJCQkJZHBbaV1bdF0gKz0gbWluKGRwW2ktMV1bMF0sIGRwW2ktMV1bMV0pOwoJCQkJCQlpZih0ID09IDEpCgkJCQkJCWRwW2ldW3RdICs9IG1pbihtaW4oZHBbaV1bMF0sIGRwW2ktMV1bMF0pLCBtaW4oZHBbaS0xXVsxXSwgZHBbaS0xXVsyXSkpOwoJCQkJCQlpZih0ID09IDIpCgkJCQkJCWRwW2ldW3RdICs9IG1pbihkcFtpXVsxXSwgZHBbaS0xXVsxXSwgZHBbaS0xXVsyXSk7CgkJCQkJfQoJCQkJfQoJCQkJbGlzdC5hZGQobnVtYmVyKyIuICIgKyBkcFtrLTFdWzFdKTsKCQkJCWsgPSBJbnRlZ2VyLnBhcnNlSW50KGJyLnJlYWRMaW5lKCkpOwoJCQkJYXJyID0gbmV3IGludFtrXVszXTsKCQkJCWlmKGsgPT0gMCkgewoJCQkJCWZsYWcgPSBmYWxzZTsKCQkJCX1lbHNlIHsKCQkJCQludW1iZXIrKzsKCQkJCX0KCQkJfQoJCX0KCQlmb3IoaW50IGk9MDtpPGxpc3Quc2l6ZSgpO2krKykgewoJCQlTeXN0ZW0ub3V0LnByaW50bG4obGlzdC5nZXQoaSkpOwoJCX0KCX0KCQoJcHVibGljIHN0YXRpYyBpbnQgbWluKGludCBhLCBpbnQgYikgewoJCXJldHVybiBhID4gYiA/IGIgOiBhOwoJfQoJCglwdWJsaWMgc3RhdGljIGludCBtaW4oaW50IGEsIGludCBiLCBpbnQgYykgewoJCWlmKGE8YikgewoJCQlpZihhPGMpIHJldHVybiBhOwoJCSAgICBlbHNlIHJldHVybiBjOwoJCX1lbHNlIGlmKGI8Yyl7CgkJCXJldHVybiBiOwoJCX1lbHNlIHsKCQkJcmV0dXJuIGM7CgkJfQoJfQp9Cg==