#include using namespace std; #define MAXN 100 #define MAXA (MAXN+1) struct Mast{ int n; int w; vector y; vector p; int &operator[](int i){ return y[i]; } int64_t area(){ return w*(int64_t)w; } void read(){ cin>>n>>w; y.resize(n); for (auto &i: y) cin>>i; sort(y.begin(),y.end()); p.resize(n+1); p[0]=-1; p[n]=n-1; for (int i=1; i a,pair b){ if (a.firstgap; } int64_t dp[MAXA][MAXA][MAXA]; void solve(int ai,int bi,int ci){ auto &best=dp[ai][bi][ci]; int level=INT32_MAX; if (ai>gap; a.read(); b.read(); c.read(); for (int i=0; i<=a.n; i++){ for (int j=0; j<=b.n; j++){ for (int k=0; k<=c.n; k++){ solve(i,j,k); } } } cout<