<?php
);
// It is assumed that all indexes are sequential starting from 0
foreach($arr as $sub_arr) {
foreach($sub_arr as $value) {
$total_cover[$value] = true;
}
}
for($i = 0; $i < (1 << $n); $i++) {
$selected_list = array(); for($j = 0; $j < $n; $j++) {
if(($i >> $j) & 1) {
$selected_list[] = $j;
foreach($arr[$j] as $value) {
$cover[$value] = true;
}
}
}
$good_cover = true;
foreach($total_cover as $key => $value) {
if(!isset($cover[$key])) { $good_cover = false;
break;
}
}
if($good_cover && count($selected_list) < count($best_cover)) { $best_cover = $selected_list;
}
}
?>
PD9waHAKJGFyciA9IGFycmF5KAogIDAgPT4gYXJyYXkoMSwyKSwKICAxID0+IGFycmF5KDEpLAogIDIgPT4gYXJyYXkoMiwzKSwKICAzID0+IGFycmF5KDEsMyw0KSwKKTsKLy8gSXQgaXMgYXNzdW1lZCB0aGF0IGFsbCBpbmRleGVzIGFyZSBzZXF1ZW50aWFsIHN0YXJ0aW5nIGZyb20gMAokdG90YWxfY292ZXIgPSBhcnJheSgpOwpmb3JlYWNoKCRhcnIgYXMgJHN1Yl9hcnIpIHsKICAgIGZvcmVhY2goJHN1Yl9hcnIgYXMgJHZhbHVlKSB7CiAgICAgICAgJHRvdGFsX2NvdmVyWyR2YWx1ZV0gPSB0cnVlOwogICAgfQp9CiRuID0gY291bnQoJGFycik7CiRiZXN0X2NvdmVyID0gYXJyYXlfa2V5cygkYXJyKTsKZm9yKCRpID0gMDsgJGkgPCAoMSA8PCAkbik7ICRpKyspIHsKICAgICRjb3ZlciA9IGFycmF5KCk7CiAgICAkc2VsZWN0ZWRfbGlzdCA9IGFycmF5KCk7CiAgICBmb3IoJGogPSAwOyAkaiA8ICRuOyAkaisrKSB7CiAgICAgICAgaWYoKCRpID4+ICRqKSAmIDEpIHsKICAgICAgICAgICAgJHNlbGVjdGVkX2xpc3RbXSA9ICRqOwogICAgICAgICAgICBmb3JlYWNoKCRhcnJbJGpdIGFzICR2YWx1ZSkgewogICAgICAgICAgICAgICAgJGNvdmVyWyR2YWx1ZV0gPSB0cnVlOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgJGdvb2RfY292ZXIgPSB0cnVlOwogICAgZm9yZWFjaCgkdG90YWxfY292ZXIgYXMgJGtleSA9PiAkdmFsdWUpIHsKICAgICAgICBpZighaXNzZXQoJGNvdmVyWyRrZXldKSkgewogICAgICAgICAgICAkZ29vZF9jb3ZlciA9IGZhbHNlOwogICAgICAgICAgICBicmVhazsKICAgICAgICB9CiAgICB9CiAgICBpZigkZ29vZF9jb3ZlciAmJiBjb3VudCgkc2VsZWN0ZWRfbGlzdCkgPCBjb3VudCgkYmVzdF9jb3ZlcikpIHsKICAgICAgICAkYmVzdF9jb3ZlciA9ICRzZWxlY3RlZF9saXN0OwogICAgfQp9CnZhcl9kdW1wKCRiZXN0X2NvdmVyKTsKPz4=