up(a2,a1).
up(a4,a2).
up(a6,a3).
up(a,a4).
up(a10,a5).
up(a12,a6).
up(a14,a7).
up(a16,a).
up(a18,a9).
up(a20,a10).
up(a22,a11).
up(a24,a12).
up(a26,a13).
up(a28,a14).
up(a30,a15).
up(a32,a16).
up(a34,a17).
up(a36,a18).
up(a38,a19).
up(a40,a20).
up(a42,a21).
up(a44,a22).
up(a46,a23).
up(a48,a24).
up(a50,a25).
up(a52,a26).
up(a54,a27).
up(a56,a28).
up(a58,a29).
up(a60,a30).
up(a62,a31).
up(a64,a32).
up(a66,a33).
up(a68,a34).
up(a70,a35).
up(a72,a36).
up(a74,a37).
up(a76,a38).
up(a78,a39).
up(a80,a40).
up(a82,a41).
up(a84,a42).
up(a86,a43).
up(a88,a44).
up(a90,a45).
up(a92,a46).
up(a94,a47).
up(a96,a48).
up(a98,a49).
up(a100,a50).
up(a102,a51).
up(a104,a52).
up(a106,a53).
up(a108,a54).
up(a110,a55).
up(a112,a56).
up(a114,a57).
up(a116,a58).
up(a118,a59).
up(a120,a60).
up(a122,a61).
up(a124,a62).
up(a126,a63).
up(a128,a64).
up(a130,a65).
up(a132,a66).
up(a134,a67).
up(a136,a68).
up(a138,a69).
up(a140,a70).
up(a142,a71).
up(a144,a72).
up(a146,a73).
up(a148,a74).
up(a150,a75).
up(a152,a76).
up(a154,a77).
up(a156,a78).
up(a158,a79).
up(a160,a80).
up(a162,a81).
up(a164,a82).
up(a166,a83).
up(a168,a84).
up(a170,a85).
up(a172,a86).
up(a174,a87).
up(a176,a88).
up(a178,a89).
up(a180,a90).
up(a182,a91).
up(a184,a92).
up(a186,a93).
up(a188,a94).
up(a190,a95).
up(a192,a96).
up(a194,a97).
up(a196,a98).
up(a198,a99).
up(a200,a100).
up(a202,a101).
up(a204,a102).
up(a206,a103).
up(a208,a104).
up(a210,a105).
up(a212,a106).
up(a214,a107).
up(a216,a108).
up(a218,a109).
up(a220,a110).
up(a222,a111).
up(a224,a112).
up(a226,a113).
up(a228,a114).
up(a230,a115).
up(a232,a116).
up(a234,a117).
up(a236,a118).
up(a238,a119).
up(a240,a120).
up(a242,a121).
up(a244,a122).
up(a246,a123).
up(a248,a124).
up(a250,a125).
up(a252,a126).
up(a254,a127).
down(a1,a3).
down(a2,a5).
down(a3,a7).
down(a4,a9).
down(a5,a11).
down(a6,a13).
down(a7,a15).
down(a,a17).
down(a9,a19).
down(a10,a21).
down(a11,a23).
down(a12,a25).
down(a13,a27).
down(a14,a29).
down(a15,a31).
down(a16,a33).
down(a17,a35).
down(a18,a37).
down(a19,a39).
down(a20,a41).
down(a21,a43).
down(a22,a45).
down(a23,a47).
down(a24,a49).
down(a25,a51).
down(a26,a53).
down(a27,a55).
down(a28,a57).
down(a29,a59).
down(a30,a61).
down(a31,a63).
down(a32,a65).
down(a33,a67).
down(a34,a69).
down(a35,a71).
down(a36,a73).
down(a37,a75).
down(a38,a77).
down(a39,a79).
down(a40,a81).
down(a41,a83).
down(a42,a85).
down(a43,a87).
down(a44,a89).
down(a45,a91).
down(a46,a93).
down(a47,a95).
down(a48,a97).
down(a49,a99).
down(a50,a101).
down(a51,a103).
down(a52,a105).
down(a53,a107).
down(a54,a109).
down(a55,a111).
down(a56,a113).
down(a57,a115).
down(a58,a117).
down(a59,a119).
down(a60,a121).
down(a61,a123).
down(a62,a125).
down(a63,a127).
down(a64,a129).
down(a65,a131).
down(a66,a133).
down(a67,a135).
down(a68,a137).
down(a69,a139).
down(a70,a141).
down(a71,a143).
down(a72,a145).
down(a73,a147).
down(a74,a149).
down(a75,a151).
down(a76,a153).
down(a77,a155).
down(a78,a157).
down(a79,a159).
down(a80,a161).
down(a81,a163).
down(a82,a165).
down(a83,a167).
down(a84,a169).
down(a85,a171).
down(a86,a173).
down(a87,a175).
down(a88,a177).
down(a89,a179).
down(a90,a181).
down(a91,a183).
down(a92,a185).
down(a93,a187).
down(a94,a189).
down(a95,a191).
down(a96,a193).
down(a97,a195).
down(a98,a197).
down(a99,a199).
down(a100,a201).
down(a101,a203).
down(a102,a205).
down(a103,a207).
down(a104,a209).
down(a105,a211).
down(a106,a213).
down(a107,a215).
down(a108,a217).
down(a109,a219).
down(a110,a221).
down(a111,a223).
down(a112,a225).
down(a113,a227).
down(a114,a229).
down(a115,a231).
down(a116,a233).
down(a117,a235).
down(a118,a237).
down(a119,a239).
down(a120,a241).
down(a121,a243).
down(a122,a245).
down(a123,a247).
down(a124,a249).
down(a125,a251).
down(a126,a253).
down(a127,a255).
flat(a2,a3).
flat(a4,a5).
flat(a6,a7).
flat(a,a9).
flat(a10,a11).
flat(a12,a13).
flat(a14,a15).
flat(a16,a17).
flat(a18,a19).
flat(a20,a21).
flat(a22,a23).
flat(a24,a25).
flat(a26,a27).
flat(a28,a29).
flat(a30,a31).
flat(a32,a33).
flat(a34,a35).
flat(a36,a37).
flat(a38,a39).
flat(a40,a41).
flat(a42,a43).
flat(a44,a45).
flat(a46,a47).
flat(a48,a49).
flat(a50,a51).
flat(a52,a53).
flat(a54,a55).
flat(a56,a57).
flat(a58,a59).
flat(a60,a61).
flat(a62,a63).
flat(a64,a65).
flat(a66,a67).
flat(a68,a69).
flat(a70,a71).
flat(a72,a73).
flat(a74,a75).
flat(a76,a77).
flat(a78,a79).
flat(a80,a81).
flat(a82,a83).
flat(a84,a85).
flat(a86,a87).
flat(a88,a89).
flat(a90,a91).
flat(a92,a93).
flat(a94,a95).
flat(a96,a97).
flat(a98,a99).
flat(a100,a101).
flat(a102,a103).
flat(a104,a105).
flat(a106,a107).
flat(a108,a109).
flat(a110,a111).
flat(a112,a113).
flat(a114,a115).
flat(a116,a117).
flat(a118,a119).
flat(a120,a121).
flat(a122,a123).
flat(a124,a125).
flat(a126,a127).
flat(a128,a129).
flat(a130,a131).
flat(a132,a133).
flat(a134,a135).
flat(a136,a137).
flat(a138,a139).
flat(a140,a141).
flat(a142,a143).
flat(a144,a145).
flat(a146,a147).
flat(a148,a149).
flat(a150,a151).
flat(a152,a153).
flat(a154,a155).
flat(a156,a157).
flat(a158,a159).
flat(a160,a161).
flat(a162,a163).
flat(a164,a165).
flat(a166,a167).
flat(a168,a169).
flat(a170,a171).
flat(a172,a173).
flat(a174,a175).
flat(a176,a177).
flat(a178,a179).
flat(a180,a181).
flat(a182,a183).
flat(a184,a185).
flat(a186,a187).
flat(a188,a189).
flat(a190,a191).
flat(a192,a193).
flat(a194,a195).
flat(a196,a197).
flat(a198,a199).
flat(a200,a201).
flat(a202,a203).
flat(a204,a205).
flat(a206,a207).
flat(a208,a209).
flat(a210,a211).
flat(a212,a213).
flat(a214,a215).
flat(a216,a217).
flat(a218,a219).
flat(a220,a221).
flat(a222,a223).
flat(a224,a225).
flat(a226,a227).
flat(a228,a229).
flat(a230,a231).
flat(a232,a233).
flat(a234,a235).
flat(a236,a237).
flat(a238,a239).
flat(a240,a241).
flat(a242,a243).
flat(a244,a245).
flat(a246,a247).
flat(a248,a249).
flat(a250,a251).
flat(a252,a253).
flat(a254,a255).
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).
