#include<stdio.h>
#include<algorithm>
using namespace std;
int in[15];
int perm[4];
int dfs(int a,int b,int c,int d,int e){
if(b<=0||c<=0||d<=0||e<0)return 0;
//printf("%d %d %d %d %d\n",a,b,c,d,e);
if(a==3){
if(e==0){
int pos=(perm[a]+1)*3;
if(b==in[pos]&&c==in[pos+1]&&d==in[pos+2])return 1;
if(c==in[pos]&&d==in[pos+1]&&b==in[pos+2])return 1;
if(d==in[pos]&&b==in[pos+1]&&c==in[pos+2])return 1;
}
return 0;
}
int ret=0;
if(e){
if(b==in[perm[a]*3+3]){
ret|=dfs(a+1,c-in[perm[a]*3+4],d,e-in[perm[a]*3+5],0);
ret|=dfs(a+1,c-in[perm[a]*3+4],d,e,180-in[perm[a]*3+5]);
ret|=dfs(a+1,180-in[perm[a]*3+4],c,d,e-in[perm[a]*3+5]);
}
if(b==in[perm[a]*3+4]){
ret|=dfs(a+1,c-in[perm[a]*3+5],d,e-in[perm[a]*3+3],0);
ret|=dfs(a+1,c-in[perm[a]*3+5],d,e,180-in[perm[a]*3+3]);
ret|=dfs(a+1,180-in[perm[a]*3+5],c,d,e-in[perm[a]*3+3]);
}
if(b==in[perm[a]*3+5]){
ret|=dfs(a+1,c-in[perm[a]*3+3],d,e-in[perm[a]*3+4],0);
ret|=dfs(a+1,c-in[perm[a]*3+3],d,e,180-in[perm[a]*3+4]);
ret|=dfs(a+1,180-in[perm[a]*3+3],c,d,e-in[perm[a]*3+4]);
}
if(c==in[perm[a]*3+3]){
ret|=dfs(a+1,d-in[perm[a]*3+4],e,b-in[perm[a]*3+5],0);
ret|=dfs(a+1,d-in[perm[a]*3+4],e,b,180-in[perm[a]*3+5]);
ret|=dfs(a+1,180-in[perm[a]*3+4],d,e,b-in[perm[a]*3+5]);
}
if(c==in[perm[a]*3+4]){
ret|=dfs(a+1,d-in[perm[a]*3+5],e,b-in[perm[a]*3+3],0);
ret|=dfs(a+1,d-in[perm[a]*3+5],e,b,180-in[perm[a]*3+3]);
ret|=dfs(a+1,180-in[perm[a]*3+5],d,e,b-in[perm[a]*3+3]);
}
if(c==in[perm[a]*3+5]){
ret|=dfs(a+1,d-in[perm[a]*3+3],e,b-in[perm[a]*3+4],0);
ret|=dfs(a+1,d-in[perm[a]*3+3],e,b,180-in[perm[a]*3+4]);
ret|=dfs(a+1,180-in[perm[a]*3+3],d,e,b-in[perm[a]*3+4]);
}
if(d==in[perm[a]*3+3]){
ret|=dfs(a+1,e-in[perm[a]*3+4],b,c-in[perm[a]*3+5],0);
ret|=dfs(a+1,e-in[perm[a]*3+4],b,c,180-in[perm[a]*3+5]);
ret|=dfs(a+1,180-in[perm[a]*3+4],e,b,c-in[perm[a]*3+5]);
}
if(d==in[perm[a]*3+4]){
ret|=dfs(a+1,e-in[perm[a]*3+5],b,c-in[perm[a]*3+3],0);
ret|=dfs(a+1,e-in[perm[a]*3+5],b,c,180-in[perm[a]*3+3]);
ret|=dfs(a+1,180-in[perm[a]*3+5],e,b,c-in[perm[a]*3+3]);
}
if(d==in[perm[a]*3+5]){
ret|=dfs(a+1,e-in[perm[a]*3+3],b,c-in[perm[a]*3+4],0);
ret|=dfs(a+1,e-in[perm[a]*3+3],b,c,180-in[perm[a]*3+4]);
ret|=dfs(a+1,180-in[perm[a]*3+3],e,b,c-in[perm[a]*3+4]);
}
if(e==in[perm[a]*3+3]){
ret|=dfs(a+1,b-in[perm[a]*3+4],c,d-in[perm[a]*3+5],0);
ret|=dfs(a+1,b-in[perm[a]*3+4],c,d,180-in[perm[a]*3+5]);
ret|=dfs(a+1,180-in[perm[a]*3+4],b,c,d-in[perm[a]*3+5]);
}
if(e==in[perm[a]*3+4]){
ret|=dfs(a+1,b-in[perm[a]*3+5],c,d-in[perm[a]*3+3],0);
ret|=dfs(a+1,b-in[perm[a]*3+5],c,d,180-in[perm[a]*3+3]);
ret|=dfs(a+1,180-in[perm[a]*3+5],b,c,d-in[perm[a]*3+3]);
}
if(e==in[perm[a]*3+5]){
ret|=dfs(a+1,b-in[perm[a]*3+3],c,d-in[perm[a]*3+4],0);
ret|=dfs(a+1,b-in[perm[a]*3+3],c,d,180-in[perm[a]*3+4]);
ret|=dfs(a+1,180-in[perm[a]*3+3],b,c,d-in[perm[a]*3+4]);
}
}else{
if(b==in[perm[a]*3+3]){
ret|=dfs(a+1,180-in[perm[a]*3+4],c,d-in[perm[a]*3+5],0);
ret|=dfs(a+1,c-in[perm[a]*3+4],d,180-in[perm[a]*3+5],0);
ret|=dfs(a+1,180-in[perm[a]*3+4],c,d,180-in[perm[a]*3+5]);
}
if(b==in[perm[a]*3+4]){
ret|=dfs(a+1,180-in[perm[a]*3+5],c,d-in[perm[a]*3+3],0);
ret|=dfs(a+1,c-in[perm[a]*3+5],d,180-in[perm[a]*3+3],0);
ret|=dfs(a+1,180-in[perm[a]*3+5],c,d,180-in[perm[a]*3+3]);
}
if(b==in[perm[a]*3+5]){
ret|=dfs(a+1,180-in[perm[a]*3+3],c,d-in[perm[a]*3+4],0);
ret|=dfs(a+1,c-in[perm[a]*3+3],d,180-in[perm[a]*3+4],0);
ret|=dfs(a+1,180-in[perm[a]*3+3],c,d,180-in[perm[a]*3+4]);
}
if(c==in[perm[a]*3+3]){
ret|=dfs(a+1,180-in[perm[a]*3+4],d,b-in[perm[a]*3+5],0);
ret|=dfs(a+1,d-in[perm[a]*3+4],b,180-in[perm[a]*3+5],0);
ret|=dfs(a+1,180-in[perm[a]*3+4],d,b,180-in[perm[a]*3+5]);
}
if(c==in[perm[a]*3+4]){
ret|=dfs(a+1,180-in[perm[a]*3+5],d,b-in[perm[a]*3+3],0);
ret|=dfs(a+1,d-in[perm[a]*3+5],b,180-in[perm[a]*3+3],0);
ret|=dfs(a+1,180-in[perm[a]*3+5],d,b,180-in[perm[a]*3+3]);
}
if(c==in[perm[a]*3+5]){
ret|=dfs(a+1,180-in[perm[a]*3+3],d,b-in[perm[a]*3+4],0);
ret|=dfs(a+1,d-in[perm[a]*3+3],b,180-in[perm[a]*3+4],0);
ret|=dfs(a+1,180-in[perm[a]*3+3],d,b,180-in[perm[a]*3+4]);
}
if(d==in[perm[a]*3+3]){
ret|=dfs(a+1,180-in[perm[a]*3+4],b,c-in[perm[a]*3+5],0);
ret|=dfs(a+1,b-in[perm[a]*3+4],c,180-in[perm[a]*3+5],0);
ret|=dfs(a+1,180-in[perm[a]*3+4],b,c,180-in[perm[a]*3+5]);
}
if(d==in[perm[a]*3+4]){
ret|=dfs(a+1,180-in[perm[a]*3+5],b,c-in[perm[a]*3+3],0);
ret|=dfs(a+1,b-in[perm[a]*3+5],c,180-in[perm[a]*3+3],0);
ret|=dfs(a+1,180-in[perm[a]*3+5],b,c,180-in[perm[a]*3+3]);
}
if(d==in[perm[a]*3+5]){
ret|=dfs(a+1,180-in[perm[a]*3+3],b,c-in[perm[a]*3+4],0);
ret|=dfs(a+1,b-in[perm[a]*3+3],c,180-in[perm[a]*3+4],0);
ret|=dfs(a+1,180-in[perm[a]*3+3],b,c,180-in[perm[a]*3+4]);
}
}
return ret;
}
int main(){
while(scanf("%d",in),in[0]){
for(int i=1;i<15;i++)scanf("%d",in+i);
for(int i=0;i<4;i++)perm[i]=i;
bool ok=false;
do{
int t=dfs(0,in[0],in[1],in[2],0);
if(t){
ok=true;
break;
}
}while(next_permutation(perm,perm+4));
for(int i=0;i<4;i++)perm[i]=i;
do{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
for(int k=0;k<3;k++)
for(int l=0;l<3;l++){
if(in[perm[0]*3+i+3]+in[perm[1]*3+j+3]+in[perm[2]*3+k+3]+in[perm[3]*3+l+3]!=360)continue;
for(int m=0;m<3;m++){
bool dame=false;
if(in[m]!=in[perm[0]*3+(i+2)%3+3]+in[perm[1]*3+(j+1)%3+3])dame=true;
if(in[(m+1)%3]!=in[perm[1]*3+(j+2)%3+3]+in[perm[2]*3+(k+1)%3+3])dame=true;
if(in[(m+2)%3]!=in[perm[2]*3+(k+2)%3+3]+in[perm[3]*3+(l+1)%3+3])dame=true;
if(180!=in[perm[3]*3+(l+2)%3+3]+in[perm[0]*3+(i+1)%3+3])dame=true;
if(!dame)ok=true;
}
}
}while(next_permutation(perm,perm+4));
if(ok)printf("yes\n");
else printf("no\n");
}
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8YWxnb3JpdGhtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwppbnQgaW5bMTVdOwppbnQgcGVybVs0XTsKaW50IGRmcyhpbnQgYSxpbnQgYixpbnQgYyxpbnQgZCxpbnQgZSl7CglpZihiPD0wfHxjPD0wfHxkPD0wfHxlPDApcmV0dXJuIDA7CgkvL3ByaW50ZigiJWQgJWQgJWQgJWQgJWRcbiIsYSxiLGMsZCxlKTsKCWlmKGE9PTMpewoJCWlmKGU9PTApewoJCQlpbnQgcG9zPShwZXJtW2FdKzEpKjM7CgkJCWlmKGI9PWluW3Bvc10mJmM9PWluW3BvcysxXSYmZD09aW5bcG9zKzJdKXJldHVybiAxOwoJCQlpZihjPT1pbltwb3NdJiZkPT1pbltwb3MrMV0mJmI9PWluW3BvcysyXSlyZXR1cm4gMTsKCQkJaWYoZD09aW5bcG9zXSYmYj09aW5bcG9zKzFdJiZjPT1pbltwb3MrMl0pcmV0dXJuIDE7CgkJfQoJCXJldHVybiAwOwoJfQoJaW50IHJldD0wOwoJaWYoZSl7CgkJaWYoYj09aW5bcGVybVthXSozKzNdKXsKCQkJcmV0fD1kZnMoYSsxLGMtaW5bcGVybVthXSozKzRdLGQsZS1pbltwZXJtW2FdKjMrNV0sMCk7CgkJCXJldHw9ZGZzKGErMSxjLWluW3Blcm1bYV0qMys0XSxkLGUsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzRdLGMsZCxlLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGI9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSxjLWluW3Blcm1bYV0qMys1XSxkLGUtaW5bcGVybVthXSozKzNdLDApOwoJCQlyZXR8PWRmcyhhKzEsYy1pbltwZXJtW2FdKjMrNV0sZCxlLDE4MC1pbltwZXJtW2FdKjMrM10pOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys1XSxjLGQsZS1pbltwZXJtW2FdKjMrM10pOwoJCX0KCQlpZihiPT1pbltwZXJtW2FdKjMrNV0pewoJCQlyZXR8PWRmcyhhKzEsYy1pbltwZXJtW2FdKjMrM10sZCxlLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGMtaW5bcGVybVthXSozKzNdLGQsZSwxODAtaW5bcGVybVthXSozKzRdKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sYyxkLGUtaW5bcGVybVthXSozKzRdKTsKCQl9CgkJaWYoYz09aW5bcGVybVthXSozKzNdKXsKCQkJcmV0fD1kZnMoYSsxLGQtaW5bcGVybVthXSozKzRdLGUsYi1pbltwZXJtW2FdKjMrNV0sMCk7CgkJCXJldHw9ZGZzKGErMSxkLWluW3Blcm1bYV0qMys0XSxlLGIsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzRdLGQsZSxiLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGM9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSxkLWluW3Blcm1bYV0qMys1XSxlLGItaW5bcGVybVthXSozKzNdLDApOwoJCQlyZXR8PWRmcyhhKzEsZC1pbltwZXJtW2FdKjMrNV0sZSxiLDE4MC1pbltwZXJtW2FdKjMrM10pOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys1XSxkLGUsYi1pbltwZXJtW2FdKjMrM10pOwoJCX0KCQlpZihjPT1pbltwZXJtW2FdKjMrNV0pewoJCQlyZXR8PWRmcyhhKzEsZC1pbltwZXJtW2FdKjMrM10sZSxiLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGQtaW5bcGVybVthXSozKzNdLGUsYiwxODAtaW5bcGVybVthXSozKzRdKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sZCxlLGItaW5bcGVybVthXSozKzRdKTsKCQl9CgkJaWYoZD09aW5bcGVybVthXSozKzNdKXsKCQkJcmV0fD1kZnMoYSsxLGUtaW5bcGVybVthXSozKzRdLGIsYy1pbltwZXJtW2FdKjMrNV0sMCk7CgkJCXJldHw9ZGZzKGErMSxlLWluW3Blcm1bYV0qMys0XSxiLGMsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzRdLGUsYixjLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGQ9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSxlLWluW3Blcm1bYV0qMys1XSxiLGMtaW5bcGVybVthXSozKzNdLDApOwoJCQlyZXR8PWRmcyhhKzEsZS1pbltwZXJtW2FdKjMrNV0sYixjLDE4MC1pbltwZXJtW2FdKjMrM10pOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys1XSxlLGIsYy1pbltwZXJtW2FdKjMrM10pOwoJCX0KCQlpZihkPT1pbltwZXJtW2FdKjMrNV0pewoJCQlyZXR8PWRmcyhhKzEsZS1pbltwZXJtW2FdKjMrM10sYixjLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGUtaW5bcGVybVthXSozKzNdLGIsYywxODAtaW5bcGVybVthXSozKzRdKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sZSxiLGMtaW5bcGVybVthXSozKzRdKTsKCQl9CgkJaWYoZT09aW5bcGVybVthXSozKzNdKXsKCQkJcmV0fD1kZnMoYSsxLGItaW5bcGVybVthXSozKzRdLGMsZC1pbltwZXJtW2FdKjMrNV0sMCk7CgkJCXJldHw9ZGZzKGErMSxiLWluW3Blcm1bYV0qMys0XSxjLGQsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzRdLGIsYyxkLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGU9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSxiLWluW3Blcm1bYV0qMys1XSxjLGQtaW5bcGVybVthXSozKzNdLDApOwoJCQlyZXR8PWRmcyhhKzEsYi1pbltwZXJtW2FdKjMrNV0sYyxkLDE4MC1pbltwZXJtW2FdKjMrM10pOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys1XSxiLGMsZC1pbltwZXJtW2FdKjMrM10pOwoJCX0KCQlpZihlPT1pbltwZXJtW2FdKjMrNV0pewoJCQlyZXR8PWRmcyhhKzEsYi1pbltwZXJtW2FdKjMrM10sYyxkLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGItaW5bcGVybVthXSozKzNdLGMsZCwxODAtaW5bcGVybVthXSozKzRdKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sYixjLGQtaW5bcGVybVthXSozKzRdKTsKCQl9Cgl9ZWxzZXsKCQlpZihiPT1pbltwZXJtW2FdKjMrM10pewoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys0XSxjLGQtaW5bcGVybVthXSozKzVdLDApOwoJCQlyZXR8PWRmcyhhKzEsYy1pbltwZXJtW2FdKjMrNF0sZCwxODAtaW5bcGVybVthXSozKzVdLDApOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys0XSxjLGQsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGI9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzVdLGMsZC1pbltwZXJtW2FdKjMrM10sMCk7CgkJCXJldHw9ZGZzKGErMSxjLWluW3Blcm1bYV0qMys1XSxkLDE4MC1pbltwZXJtW2FdKjMrM10sMCk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzVdLGMsZCwxODAtaW5bcGVybVthXSozKzNdKTsKCQl9CgkJaWYoYj09aW5bcGVybVthXSozKzVdKXsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sYyxkLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGMtaW5bcGVybVthXSozKzNdLGQsMTgwLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sYyxkLDE4MC1pbltwZXJtW2FdKjMrNF0pOwoJCX0KCQlpZihjPT1pbltwZXJtW2FdKjMrM10pewoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys0XSxkLGItaW5bcGVybVthXSozKzVdLDApOwoJCQlyZXR8PWRmcyhhKzEsZC1pbltwZXJtW2FdKjMrNF0sYiwxODAtaW5bcGVybVthXSozKzVdLDApOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys0XSxkLGIsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGM9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzVdLGQsYi1pbltwZXJtW2FdKjMrM10sMCk7CgkJCXJldHw9ZGZzKGErMSxkLWluW3Blcm1bYV0qMys1XSxiLDE4MC1pbltwZXJtW2FdKjMrM10sMCk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzVdLGQsYiwxODAtaW5bcGVybVthXSozKzNdKTsKCQl9CgkJaWYoYz09aW5bcGVybVthXSozKzVdKXsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sZCxiLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGQtaW5bcGVybVthXSozKzNdLGIsMTgwLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sZCxiLDE4MC1pbltwZXJtW2FdKjMrNF0pOwoJCX0KCQlpZihkPT1pbltwZXJtW2FdKjMrM10pewoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys0XSxiLGMtaW5bcGVybVthXSozKzVdLDApOwoJCQlyZXR8PWRmcyhhKzEsYi1pbltwZXJtW2FdKjMrNF0sYywxODAtaW5bcGVybVthXSozKzVdLDApOwoJCQlyZXR8PWRmcyhhKzEsMTgwLWluW3Blcm1bYV0qMys0XSxiLGMsMTgwLWluW3Blcm1bYV0qMys1XSk7CgkJfQoJCWlmKGQ9PWluW3Blcm1bYV0qMys0XSl7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzVdLGIsYy1pbltwZXJtW2FdKjMrM10sMCk7CgkJCXJldHw9ZGZzKGErMSxiLWluW3Blcm1bYV0qMys1XSxjLDE4MC1pbltwZXJtW2FdKjMrM10sMCk7CgkJCXJldHw9ZGZzKGErMSwxODAtaW5bcGVybVthXSozKzVdLGIsYywxODAtaW5bcGVybVthXSozKzNdKTsKCQl9CgkJaWYoZD09aW5bcGVybVthXSozKzVdKXsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sYixjLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLGItaW5bcGVybVthXSozKzNdLGMsMTgwLWluW3Blcm1bYV0qMys0XSwwKTsKCQkJcmV0fD1kZnMoYSsxLDE4MC1pbltwZXJtW2FdKjMrM10sYixjLDE4MC1pbltwZXJtW2FdKjMrNF0pOwoJCX0KCX0KCXJldHVybiByZXQ7Cn0KaW50IG1haW4oKXsKCXdoaWxlKHNjYW5mKCIlZCIsaW4pLGluWzBdKXsKCQlmb3IoaW50IGk9MTtpPDE1O2krKylzY2FuZigiJWQiLGluK2kpOwoJCWZvcihpbnQgaT0wO2k8NDtpKyspcGVybVtpXT1pOwoJCWJvb2wgb2s9ZmFsc2U7CgkJZG97CgkJCWludCB0PWRmcygwLGluWzBdLGluWzFdLGluWzJdLDApOwoJCQlpZih0KXsKCQkJCW9rPXRydWU7CgkJCQlicmVhazsKCQkJfQoJCX13aGlsZShuZXh0X3Blcm11dGF0aW9uKHBlcm0scGVybSs0KSk7CgkJZm9yKGludCBpPTA7aTw0O2krKylwZXJtW2ldPWk7CgkJZG97CgkJCWZvcihpbnQgaT0wO2k8MztpKyspCgkJCQlmb3IoaW50IGo9MDtqPDM7aisrKQoJCQkJCWZvcihpbnQgaz0wO2s8MztrKyspCgkJCQkJCWZvcihpbnQgbD0wO2w8MztsKyspewoJCQkJCQkJaWYoaW5bcGVybVswXSozK2krM10raW5bcGVybVsxXSozK2orM10raW5bcGVybVsyXSozK2srM10raW5bcGVybVszXSozK2wrM10hPTM2MCljb250aW51ZTsKCQkJCQkJCWZvcihpbnQgbT0wO208MzttKyspewoJCQkJCQkJCWJvb2wgZGFtZT1mYWxzZTsKCQkJCQkJCQlpZihpblttXSE9aW5bcGVybVswXSozKyhpKzIpJTMrM10raW5bcGVybVsxXSozKyhqKzEpJTMrM10pZGFtZT10cnVlOwoJCQkJCQkJCWlmKGluWyhtKzEpJTNdIT1pbltwZXJtWzFdKjMrKGorMiklMyszXStpbltwZXJtWzJdKjMrKGsrMSklMyszXSlkYW1lPXRydWU7CgkJCQkJCQkJaWYoaW5bKG0rMiklM10hPWluW3Blcm1bMl0qMysoaysyKSUzKzNdK2luW3Blcm1bM10qMysobCsxKSUzKzNdKWRhbWU9dHJ1ZTsKCQkJCQkJCQlpZigxODAhPWluW3Blcm1bM10qMysobCsyKSUzKzNdK2luW3Blcm1bMF0qMysoaSsxKSUzKzNdKWRhbWU9dHJ1ZTsKCQkJCQkJCQlpZighZGFtZSlvaz10cnVlOwoJCQkJCQkJfQoJCQkJCQl9CgkJfXdoaWxlKG5leHRfcGVybXV0YXRpb24ocGVybSxwZXJtKzQpKTsKCQlpZihvaylwcmludGYoInllc1xuIik7CgkJZWxzZSBwcmludGYoIm5vXG4iKTsKCX0KfQ==