queryF(X) :- rsgBF(a,X).

rsgBF(X,Y) :- sflat(X,Y), mrsgBF(X).
rsgBF(X,Y) :- up(X,X1), rsgFB(Y1,X1), down(Y1,Y), mrsgBF(X).

rsgFB(X,Y) :- sflat(X,Y), mrsgFB(Y).
rsgFB(X,Y) :- up(X,X1), rsgBF(Y1,X1), down(Y1,Y), mrsgFB(Y).

sflat(X,Y) :- flat(X,Y).
sflat(X,Y) :- flat(Y,X).

mrsgBF(a).
mrsgBF(Y1) :- down(Y1,Y), mrsgFB(Y).

mrsgFB(X1) :- up(X,X1), mrsgBF(X).