GenExtremal= (q, b)-> (
    Q=set {1};
    for i from 1 to q  do Q=Q+set{i};
    B=set {1};
    for i from 1 to b  do B=B+set{i};
    V={{{}}};
    for i from 0 to q do (
        s = V#i;
        Elist = {};
        for j from 0 to #s-1 do(
            for k from 1 to b do(
                Elist = append(Elist, append(s#j, k));
            );
        );
        V=append(V, Elist);
    );
 
    PS= subsets Q;
    Vars = {};
    for i from 1 to #PS-1 do(
        for func in V#(#PS#i) do(
            Vars = append(Vars, x_{PS#i, func});
        );
    );
 
    R = QQ[Vars];
    IdealGens = {};
    for i from 1 to q do (
        e_i=1;
        for j from 0 to #PS-1 do (
            if isSubset(set{i},PS#j) then (
                for func in V#(#PS#j) do (
                    e_i=e_i*x_{PS#j, func};
                );
            );
        );
      
        IdealGens=IdealGens|{e_i};
    );
 
    return monomialIdeal(IdealGens);
)