//#include <iostream>
//#include <vector>
//#include <string>
//#include <sstream>
//#include <cstdint>
//#include <algorithm>
///**
//EULER #43
// 0123456789
//The number, 1406357289, is a 0 to 9 pandigital number because it is
//made up of each of the digits 0 to 9 in some order, but it also has
//a rather interesting sub-string divisibility property.
//
//Let d1 be the 1st digit, d2 be the 2nd digit, and so on. In this way, we note the following:
//
//d2d3d4=406 is divisible by 2
//d3d4d5=063 is divisible by 3
//d4d5d6=635 is divisible by 5
//d5d6d7=357 is divisible by 7
//d6d7d8=572 is divisible by 11
//d7d8d9=728 is divisible by 13
//d8d9d10=289 is divisible by 17
//Find the sum of all 0 to 9 pandigital numbers with this property.
//*/
//
//bool divisable(int num, int b)
//{
// int a[] = {1,2,3,5,7,11,13,17};
// return !(num % a[b]);
//}
//
//bool stripInvalid(const std::string& s)
//{
// if(s[0] == '0' || s[5] != '5' || (s[3] % 2 != 0))
// return false;
//
// for(int i = 0; i <= 9; ++i)
// {
// if(s.find( i + '0') == std::string::npos)
// {
// return false;
// }
// }
// return true;
//}
//
//uint64_t checkNum(const std::string& s)
//{
// std::stringstream ss;
// uint64_t t = 0;
// for(int i = 0; i < 8; ++i)
// {
// t = 0;
// ss.clear();
// std::string st = s.substr(i, 3);
// ss << st;
// ss >> t;
// if(!divisable(t, i))
// {
// return 0;
// }
// }
// ss.clear();
// ss << s;
// ss >> t;
// return t;
//}
//
//bool checkDig(uint64_t t)
//{
// uint64_t t_ = t;
// std::vector<int> v;
// for(int i = 0; i < 8; ++i)
// {
// /*v.push_back(t%1000);
// t/=1000;*/
// if(!divisable(t_%1000, i))
// {
// return false;
// }
// }
// return true;
//
//}
//std::vector<std::string> permute(std::string s)
//{
// std::string orig = s;
// std::vector<std::string> v;
// // v.push_back(s);
// int len = s.length();
// int i = len - 4;
// bool done = false;
// int digits = 0;
//
// while(digits < len)
// {
// while(i > 0)//12345
// {
// int j = i+1;
// while(!done)
// {
// if(j < len - 1)
// {
// std::swap(s[j], s[j+1]);
// v.push_back(s);
// ++j;
// }
// else
// j = i+1;
// if(s == orig)
// done = true;
// }
// std::swap(s[i], s[digits+2]);
//
// // if(s[1] == orig[len - 1]) i = len - 4;
// // else
// --i;
//
// orig = s;
// done = false;
// }
// // std::swap(s[0], s[1]);
// ++digits;
// i = len - 4;
// }
// return v;
//}
//
//int main()
//{
// //std::string s = "1406357280";
// std::vector<int> v;
// //std::stringstream ss;
// uint64_t sum = 0,
// t = 0;
// /*std::cout << s[3] % 2 << std::endl;
// ss << s;
// ss >> t;*/
// std::vector<std::string> vs = permute("12345");
// for(int i = 0; i < vs.size(); ++i)//while(s != "4200000000")
// {
// if(stripInvalid(vs[i]))
// {
// if((t = checkNum(vs[i])) != 0)
// {
// v.push_back(t);
// std::cout << t << std::endl;
// }
// //std::cout<<s<<std::endl;
// }
// /* ss << s;
// ss >> t;
// ++t;
// s = std::to_string(t);*/
// }
//
// for(auto& i : v)
// sum += i;
// std::cout << "sum= " << sum << std::endl;
// std::cin>>t;
//}
////int main()
////{
//// uint64_t sum = 0;
////
//// std::string s = "1430950000";
//// std::vector<int> v;
//// std::stringstream ss;
//// uint64_t t = 0;
//// bool good = true;
//// while(s != "4200000000")
//// {
//// for(int i = 0; i <= 9; ++i)
//// {
//// if(s[0] != '0' || s.find( i + '0') == std::string::npos)
//// {
//// good = false;
//// break;
//// }
//// }
////
//// if(good)
//// {
////
//// // int arr[8];
////
//// for(int i = 0; i < 9; ++i)
//// {
//// std::string st = s.substr(i, 3);
//// ss << st;
//// ss >> t;
//// if(t%(i+1) != 0)
//// {
//// good = false;
//// break;
//// }
//// }
////
//// if(good)
//// {
//// ss << s;
//// ss >> t;
//// sum += t;
//// std::cout<<s<<std::endl;
//// }
//// }
//// ss << s;
//// ss >> t;
//// ++t;
//// s = std::to_string(t);
//// good = true;
//// //std::cout<<s<<std::endl;
//// }
////}
#include<iostream>
#include<array>
#include<string>
using namespace std;
void print_gene_table2(array< array<string,6>,22 >);
int main()
{
// EXCEPTION: too many initializers for ‘std::array<std::array<std::basic_string<char>, 6ul>, 22ul>’
array< array<string,6>,22 > gene_table1 =
{{// extra brace needed here
{"UUU","UUC"}, // Phe
{"UUA","UUG","CUU","CUC","CUA","CUG"}, // Leu
{"UCU","UCC","UCA","UCG","AGU","AGC"}, // Ser
{"UAU","UAC"}, // Tyr
{"UAA","UAG","UGA"}, // STO
{"UGU","UGC"}, // Cys
{"UGG"}, // Trp
{"CCU","CCC","CCA","CCG"}, // Pro
{"CAU","CAC"}, // His
{"CAA","CAG"}, // Gln
{"CGU","CGC","CGA","CGG"}, // Arg
{"AUU","AUC","AUA"}, // Ile
{"AUG"}, // STA or Met
{"ACU","ACC","ACA","ACG"}, // Thr
{"AAU","AAC"}, // Asn
{"AAA","AAG"}, // Lys
{"AGA","AGG"}, // Arg
{"GUU","GUC","GUA","GUG"}, // Val
{"GCU","GCC","GCA","GCG"}, // Ala
{"GAU","GAC"}, // Asp
{"GAA","GAG"}, // Glu
{"GGU","GGC","GGA","GGG"} // Gly
}};//and here
print_gene_table2(gene_table1);
return 0;
}
void print_gene_table2(array< array<string,6>,22 > gene_table1)
{
for(unsigned i = 0;i < gene_table1.size();i++)//you were mising a condition here
{//brace here
for(unsigned j = 0;j < gene_table1[i].size();j++)
{
cout << gene_table1[i][j] << " ";
}
cout<<endl;
}//and here
}
Ly8jaW5jbHVkZSA8aW9zdHJlYW0+Ci8vI2luY2x1ZGUgPHZlY3Rvcj4KLy8jaW5jbHVkZSA8c3RyaW5nPgovLyNpbmNsdWRlIDxzc3RyZWFtPgovLyNpbmNsdWRlIDxjc3RkaW50PgovLyNpbmNsdWRlIDxhbGdvcml0aG0+Ci8vLyoqCi8vRVVMRVIgIzQzCi8vICAgICAgICAgICAgMDEyMzQ1Njc4OQovL1RoZSBudW1iZXIsIDE0MDYzNTcyODksIGlzIGEgMCB0byA5IHBhbmRpZ2l0YWwgbnVtYmVyIGJlY2F1c2UgaXQgaXMKLy9tYWRlIHVwIG9mIGVhY2ggb2YgdGhlIGRpZ2l0cyAwIHRvIDkgaW4gc29tZSBvcmRlciwgYnV0IGl0IGFsc28gaGFzIAovL2EgcmF0aGVyIGludGVyZXN0aW5nIHN1Yi1zdHJpbmcgZGl2aXNpYmlsaXR5IHByb3BlcnR5LgovLwovL0xldCBkMSBiZSB0aGUgMXN0IGRpZ2l0LCBkMiBiZSB0aGUgMm5kIGRpZ2l0LCBhbmQgc28gb24uIEluIHRoaXMgd2F5LCB3ZSBub3RlIHRoZSBmb2xsb3dpbmc6Ci8vCi8vZDJkM2Q0PTQwNiBpcyBkaXZpc2libGUgYnkgMgovL2QzZDRkNT0wNjMgaXMgZGl2aXNpYmxlIGJ5IDMKLy9kNGQ1ZDY9NjM1IGlzIGRpdmlzaWJsZSBieSA1Ci8vZDVkNmQ3PTM1NyBpcyBkaXZpc2libGUgYnkgNwovL2Q2ZDdkOD01NzIgaXMgZGl2aXNpYmxlIGJ5IDExCi8vZDdkOGQ5PTcyOCBpcyBkaXZpc2libGUgYnkgMTMKLy9kOGQ5ZDEwPTI4OSBpcyBkaXZpc2libGUgYnkgMTcKLy9GaW5kIHRoZSBzdW0gb2YgYWxsIDAgdG8gOSBwYW5kaWdpdGFsIG51bWJlcnMgd2l0aCB0aGlzIHByb3BlcnR5LgovLyovCi8vCi8vYm9vbCBkaXZpc2FibGUoaW50IG51bSwgaW50IGIpCi8vewovLyAgICBpbnQgYVtdID0gezEsMiwzLDUsNywxMSwxMywxN307Ci8vICAgIHJldHVybiAhKG51bSAlIGFbYl0pOwovL30KLy8KLy9ib29sIHN0cmlwSW52YWxpZChjb25zdCBzdGQ6OnN0cmluZyYgcykKLy97Ci8vICAgIGlmKHNbMF0gPT0gJzAnIHx8IHNbNV0gIT0gJzUnIHx8IChzWzNdICUgMiAhPSAwKSkKLy8gICAgICAgIHJldHVybiBmYWxzZTsKLy8KLy8gICAgZm9yKGludCBpID0gMDsgaSA8PSA5OyArK2kpCi8vICAgIHsKLy8gICAgICAgIGlmKHMuZmluZCggaSArICcwJykgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi8vICAgICAgICB7Ci8vICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwovLyAgICAgICAgfQovLyAgICB9Ci8vICAgIHJldHVybiB0cnVlOwovL30KLy8KLy91aW50NjRfdCBjaGVja051bShjb25zdCBzdGQ6OnN0cmluZyYgcykKLy97Ci8vICAgIHN0ZDo6c3RyaW5nc3RyZWFtIHNzOwovLyAgICB1aW50NjRfdCB0ID0gMDsKLy8gICAgZm9yKGludCBpID0gMDsgaSA8IDg7ICsraSkKLy8gICAgewovLyAgICAgICAgdCA9IDA7Ci8vICAgICAgICBzcy5jbGVhcigpOwovLyAgICAgICAgc3RkOjpzdHJpbmcgc3QgPSBzLnN1YnN0cihpLCAzKTsKLy8gICAgICAgIHNzIDw8IHN0OwovLyAgICAgICAgc3MgPj4gdDsKLy8gICAgICAgIGlmKCFkaXZpc2FibGUodCwgaSkpCi8vICAgICAgICB7Ci8vICAgICAgICAgICAgcmV0dXJuIDA7Ci8vICAgICAgICB9Ci8vICAgIH0KLy8gICAgc3MuY2xlYXIoKTsKLy8gICAgc3MgPDwgczsKLy8gICAgc3MgPj4gdDsKLy8gICAgcmV0dXJuIHQ7Ci8vfQovLwovL2Jvb2wgY2hlY2tEaWcodWludDY0X3QgdCkKLy97Ci8vICAgIHVpbnQ2NF90IHRfID0gdDsKLy8gICAgc3RkOjp2ZWN0b3I8aW50PiB2OwovLyAgICBmb3IoaW50IGkgPSAwOyBpIDwgODsgKytpKQovLyAgICB7Ci8vICAgICAgICAvKnYucHVzaF9iYWNrKHQlMTAwMCk7Ci8vICAgICAgICB0Lz0xMDAwOyovCi8vICAgICAgICBpZighZGl2aXNhYmxlKHRfJTEwMDAsIGkpKQovLyAgICAgICAgewovLyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLy8gICAgICAgIH0KLy8gICAgfQovLyAgICByZXR1cm4gdHJ1ZTsKLy8KLy99Ci8vc3RkOjp2ZWN0b3I8c3RkOjpzdHJpbmc+IHBlcm11dGUoc3RkOjpzdHJpbmcgcykKLy97Ci8vICAgIHN0ZDo6c3RyaW5nIG9yaWcgPSBzOwovLyAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gdjsKLy8gICAvLyB2LnB1c2hfYmFjayhzKTsKLy8gICAgaW50IGxlbiA9IHMubGVuZ3RoKCk7Ci8vICAgIGludCBpID0gbGVuIC0gNDsKLy8gICAgYm9vbCBkb25lID0gZmFsc2U7Ci8vICAgIGludCBkaWdpdHMgPSAwOwovLyAgICAKLy8gICAgd2hpbGUoZGlnaXRzIDwgbGVuKQovLyAgICB7Ci8vICAgICAgICB3aGlsZShpID4gMCkvLzEyMzQ1Ci8vICAgICAgICB7Ci8vICAgICAgICAgICAgaW50IGogPSBpKzE7Ci8vICAgICAgICAgICAgd2hpbGUoIWRvbmUpCi8vICAgICAgICAgICAgewovLyAgICAgICAgICAgICAgICBpZihqIDwgbGVuIC0gMSkKLy8gICAgICAgICAgICAgICAgewovLyAgICAgICAgICAgICAgICAgICAgc3RkOjpzd2FwKHNbal0sIHNbaisxXSk7Ci8vICAgICAgICAgICAgICAgICAgICB2LnB1c2hfYmFjayhzKTsKLy8gICAgICAgICAgICAgICAgICAgICsrajsKLy8gICAgICAgICAgICAgICAgfQovLyAgICAgICAgICAgICAgICBlbHNlCi8vICAgICAgICAgICAgICAgICAgICBqID0gaSsxOwovLyAgICAgICAgICAgICAgICBpZihzID09IG9yaWcpIAovLyAgICAgICAgICAgICAgICAgICAgZG9uZSA9IHRydWU7Ci8vICAgICAgICAgICAgfQovLyAgICAgICAgICAgIHN0ZDo6c3dhcChzW2ldLCBzW2RpZ2l0cysyXSk7Ci8vCi8vICAgICAgICAgICAvLyBpZihzWzFdID09IG9yaWdbbGVuIC0gMV0pIGkgPSBsZW4gLSA0OwovLyAgICAgICAgICAgLy8gZWxzZSAKLy8gICAgICAgICAgICAgICAgLS1pOwovLwovLyAgICAgICAgICAgIG9yaWcgPSBzOwovLyAgICAgICAgICAgIGRvbmUgPSBmYWxzZTsKLy8gICAgICAgIH0KLy8gICAgICAgLy8gc3RkOjpzd2FwKHNbMF0sIHNbMV0pOwovLyAgICAgICAgKytkaWdpdHM7Ci8vICAgICAgICBpID0gbGVuIC0gNDsKLy8gICAgfQovLyAgICByZXR1cm4gdjsKLy99Ci8vCi8vaW50IG1haW4oKQovL3sgICAKLy8gICAgLy9zdGQ6OnN0cmluZyBzID0gIjE0MDYzNTcyODAiOwovLyAgICBzdGQ6OnZlY3RvcjxpbnQ+IHY7Ci8vICAgIC8vc3RkOjpzdHJpbmdzdHJlYW0gc3M7Ci8vICAgIHVpbnQ2NF90IHN1bSA9IDAsCi8vICAgICAgICB0ID0gMDsKLy8gICAgLypzdGQ6OmNvdXQgPDwgc1szXSAlIDIgPDwgc3RkOjplbmRsOwovLyAgICBzcyA8PCBzOwovLyAgICBzcyA+PiB0OyovCi8vICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiB2cyA9IHBlcm11dGUoIjEyMzQ1Iik7Ci8vICAgIGZvcihpbnQgaSA9IDA7IGkgPCB2cy5zaXplKCk7ICsraSkvL3doaWxlKHMgIT0gIjQyMDAwMDAwMDAiKQovLyAgICB7ICAgICAgICAKLy8gICAgICAgIGlmKHN0cmlwSW52YWxpZCh2c1tpXSkpCi8vICAgICAgICB7Ci8vICAgICAgICAgICAgaWYoKHQgPSBjaGVja051bSh2c1tpXSkpICE9IDApCi8vICAgICAgICAgICAgewovLyAgICAgICAgICAgICAgICB2LnB1c2hfYmFjayh0KTsKLy8gICAgICAgICAgICAgICAgc3RkOjpjb3V0IDw8IHQgPDwgc3RkOjplbmRsOwovLyAgICAgICAgICAgIH0KLy8gICAgICAgICAgIC8vc3RkOjpjb3V0PDxzPDxzdGQ6OmVuZGw7Ci8vICAgICAgICB9Ci8vICAgICAgIC8qIHNzIDw8IHM7Ci8vICAgICAgICBzcyA+PiB0OyAKLy8gICAgICAgICsrdDsKLy8gICAgICAgIHMgPSBzdGQ6OnRvX3N0cmluZyh0KTsqLwovLyAgICB9Ci8vCi8vICAgIGZvcihhdXRvJiBpIDogdikKLy8gICAgICAgIHN1bSArPSBpOwovLyAgICBzdGQ6OmNvdXQgPDwgInN1bT0gIiA8PCBzdW0gPDwgc3RkOjplbmRsOwovLyAgICBzdGQ6OmNpbj4+dDsKLy99Ci8vLy9pbnQgbWFpbigpCi8vLy97Ci8vLy8gICAgdWludDY0X3Qgc3VtID0gMDsKLy8vLyAgICAKLy8vLyAgICBzdGQ6OnN0cmluZyBzID0gIjE0MzA5NTAwMDAiOwovLy8vICAgIHN0ZDo6dmVjdG9yPGludD4gdjsKLy8vLyAgICBzdGQ6OnN0cmluZ3N0cmVhbSBzczsKLy8vLyAgICB1aW50NjRfdCB0ID0gMDsKLy8vLyAgICBib29sIGdvb2QgPSB0cnVlOwovLy8vICAgIHdoaWxlKHMgIT0gIjQyMDAwMDAwMDAiKQovLy8vICAgIHsKLy8vLyAgICAgICAgZm9yKGludCBpID0gMDsgaSA8PSA5OyArK2kpCi8vLy8gICAgICAgIHsKLy8vLyAgICAgICAgICAgIGlmKHNbMF0gIT0gJzAnIHx8IHMuZmluZCggaSArICcwJykgPT0gc3RkOjpzdHJpbmc6Om5wb3MpCi8vLy8gICAgICAgICAgICB7Ci8vLy8gICAgICAgICAgICAgICAgZ29vZCA9IGZhbHNlOwovLy8vICAgICAgICAgICAgICAgIGJyZWFrOwovLy8vICAgICAgICAgICAgfQovLy8vICAgICAgICB9Ci8vLy8KLy8vLyAgICAgICAgaWYoZ29vZCkKLy8vLyAgICAgICAgewovLy8vICAgICAgIAovLy8vICAgICAgICAgICAvLyBpbnQgYXJyWzhdOwovLy8vICAgICAgIAovLy8vICAgICAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDk7ICsraSkKLy8vLyAgICAgICAgICAgIHsKLy8vLyAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBzdCA9IHMuc3Vic3RyKGksIDMpOwovLy8vICAgICAgICAgICAgICAgIHNzIDw8IHN0OwovLy8vICAgICAgICAgICAgICAgIHNzID4+IHQ7Ci8vLy8gICAgICAgICAgICAgICAgaWYodCUoaSsxKSAhPSAwKQovLy8vICAgICAgICAgICAgICAgIHsKLy8vLyAgICAgICAgICAgICAgICAgICAgZ29vZCA9IGZhbHNlOwovLy8vICAgICAgICAgICAgICAgICAgICBicmVhazsKLy8vLyAgICAgICAgICAgICAgICB9Ci8vLy8gICAgICAgICAgICB9Ci8vLy8KLy8vLyAgICAgICAgICAgIGlmKGdvb2QpCi8vLy8gICAgICAgICAgICB7Ci8vLy8gICAgICAgICAgICAgICAgc3MgPDwgczsKLy8vLyAgICAgICAgICAgICAgICBzcyA+PiB0OwovLy8vICAgICAgICAgICAgICAgIHN1bSArPSB0OwovLy8vICAgICAgICAgICAgICAgIHN0ZDo6Y291dDw8czw8c3RkOjplbmRsOwovLy8vICAgICAgICAgICAgfQovLy8vICAgICAgICB9Ci8vLy8gICAgICAgIHNzIDw8IHM7Ci8vLy8gICAgICAgIHNzID4+IHQ7IAovLy8vICAgICAgICArK3Q7Ci8vLy8gICAgICAgIHMgPSBzdGQ6OnRvX3N0cmluZyh0KTsKLy8vLyAgICAgICAgZ29vZCA9IHRydWU7Ci8vLy8gICAgICAgLy9zdGQ6OmNvdXQ8PHM8PHN0ZDo6ZW5kbDsKLy8vLyAgICB9Ci8vLy99CiNpbmNsdWRlPGlvc3RyZWFtPgojaW5jbHVkZTxhcnJheT4KI2luY2x1ZGU8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwogCnZvaWQgcHJpbnRfZ2VuZV90YWJsZTIoYXJyYXk8IGFycmF5PHN0cmluZyw2PiwyMiA+KTsgIAogCmludCBtYWluKCkKewogCi8vIEVYQ0VQVElPTjogdG9vIG1hbnkgaW5pdGlhbGl6ZXJzIGZvciDigJhzdGQ6OmFycmF5PHN0ZDo6YXJyYXk8c3RkOjpiYXNpY19zdHJpbmc8Y2hhcj4sIDZ1bD4sIDIydWw+4oCZCiAgCiAgYXJyYXk8IGFycmF5PHN0cmluZyw2PiwyMiA+IGdlbmVfdGFibGUxID0KICB7ey8vIGV4dHJhIGJyYWNlIG5lZWRlZCBoZXJlCiAgICB7IlVVVSIsIlVVQyJ9LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gUGhlCiAgICB7IlVVQSIsIlVVRyIsIkNVVSIsIkNVQyIsIkNVQSIsIkNVRyJ9LCAgLy8gTGV1CiAgICB7IlVDVSIsIlVDQyIsIlVDQSIsIlVDRyIsIkFHVSIsIkFHQyJ9LCAgLy8gU2VyCiAgICB7IlVBVSIsIlVBQyJ9LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHlyCiAgICB7IlVBQSIsIlVBRyIsIlVHQSJ9LCAgICAgICAgICAgICAgICAgICAgLy8gU1RPCiAgICB7IlVHVSIsIlVHQyJ9LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ3lzCiAgICB7IlVHRyJ9LCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVHJwCiAgICB7IkNDVSIsIkNDQyIsIkNDQSIsIkNDRyJ9LCAgICAgICAgICAgICAgLy8gUHJvCiAgICB7IkNBVSIsIkNBQyJ9LCAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gSGlzIAogICAgeyJDQUEiLCJDQUcifSwgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIEdsbgogICAgeyJDR1UiLCJDR0MiLCJDR0EiLCJDR0cifSwgICAgICAgICAgICAgIC8vIEFyZwogICAgeyJBVVUiLCJBVUMiLCJBVUEifSwgICAgICAgICAgICAgICAgICAgIC8vIElsZQogICAgeyJBVUcifSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNUQSBvciBNZXQKICAgIHsiQUNVIiwiQUNDIiwiQUNBIiwiQUNHIn0sICAgICAgICAgICAgICAvLyBUaHIKICAgIHsiQUFVIiwiQUFDIn0sICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBc24KICAgIHsiQUFBIiwiQUFHIn0sICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBMeXMKICAgIHsiQUdBIiwiQUdHIn0sICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBcmcKICAgIHsiR1VVIiwiR1VDIiwiR1VBIiwiR1VHIn0sICAgICAgICAgICAgICAvLyBWYWwKICAgIHsiR0NVIiwiR0NDIiwiR0NBIiwiR0NHIn0sICAgICAgICAgICAgICAvLyBBbGEKICAgIHsiR0FVIiwiR0FDIn0sICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBBc3AKICAgIHsiR0FBIiwiR0FHIn0sICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBHbHUKICAgIHsiR0dVIiwiR0dDIiwiR0dBIiwiR0dHIn0gICAgICAgICAgICAgICAvLyBHbHkKICB9fTsvL2FuZCBoZXJlCiAgCiAgcHJpbnRfZ2VuZV90YWJsZTIoZ2VuZV90YWJsZTEpOwogCiAgcmV0dXJuIDA7Cn0KIAp2b2lkIHByaW50X2dlbmVfdGFibGUyKGFycmF5PCBhcnJheTxzdHJpbmcsNj4sMjIgPiBnZW5lX3RhYmxlMSkgCnsgCiAgZm9yKHVuc2lnbmVkIGkgPSAwO2kgPCBnZW5lX3RhYmxlMS5zaXplKCk7aSsrKS8veW91IHdlcmUgbWlzaW5nIGEgY29uZGl0aW9uIGhlcmUKICB7Ly9icmFjZSBoZXJlCiAgICBmb3IodW5zaWduZWQgaiA9IDA7aiA8IGdlbmVfdGFibGUxW2ldLnNpemUoKTtqKyspCiAgICB7IAogICAgICBjb3V0IDw8IGdlbmVfdGFibGUxW2ldW2pdIDw8ICIgICI7CiAgICB9CiAgICBjb3V0PDxlbmRsOwogIH0vL2FuZCBoZXJlCn0=