:- discontiguous male/1, female/1, parent/2.
male(dicky).
male(randy).
male(mike).
male(don).
male(elmer).
female(anne).
female(rosie).
female(esther).
female(mildred).
female(greatgramma).
male(blair).
male(god).
female(god).
parent(don,randy).
parent(don,mike).
parent(don,anne).
parent(rosie,randy).
parent(rosie,mike).
parent(rosie,anne).
parent(elmer,don).
parent(mildred,don).
parent(esther,rosie).
parent(esther,dicky).
parent(greatgramma,esther).
parent(randy,blair).
male(mel).
male(teo).
parent(melsr,mel).
parent(melsr,teo).
american(anne).
american(X) :- ancestor(X,anne).
american(X) :- ancestor(anne,X).
relation(X,Y) :- ancestor(A,X), ancestor(A,Y).
father(X,Y) :- male(X),parent(X,Y).
father(god, _) :- male(god).
mother(X,Y) :- female(X),parent(X,Y).
son(X,Y) :- male(X),parent(Y,X).
daughter(X,Y) :- female(X),parent(Y,X).
grandfather(X,Y) :- male(X),parent(X,Somebody),parent(Somebody,Y).
aunt(X,Y) :- female(X),sister(X,Mom),mother(Mom,Y).
aunt(X,Y) :- female(X),sister(X,Dad),father(Dad,Y).
sister(X,Y) :- female(X),parent(Par,X),parent(Par,Y), X \= Y.
uncle(X,Y) :- brother(X,Par),parent(Par,Y).
cousin(X,Y) :- uncle(Unc , X),father(Unc,Y).
ancestor(X,Y) :- parent(X,Y).
ancestor(X,Y) :- parent(X,Somebody),ancestor(Somebody,Y).
brother(X,Y) :- male(X),parent(Somebody,X),parent(Somebody,Y), X \= Y.
Oi0gZGlzY29udGlndW91cyBtYWxlLzEsIGZlbWFsZS8xLCBwYXJlbnQvMi4KbWFsZShkaWNreSkuCm1hbGUocmFuZHkpLgptYWxlKG1pa2UpLgptYWxlKGRvbikuCm1hbGUoZWxtZXIpLgpmZW1hbGUoYW5uZSkuCmZlbWFsZShyb3NpZSkuCmZlbWFsZShlc3RoZXIpLgpmZW1hbGUobWlsZHJlZCkuCmZlbWFsZShncmVhdGdyYW1tYSkuCm1hbGUoYmxhaXIpLgptYWxlKGdvZCkuCmZlbWFsZShnb2QpLgoKcGFyZW50KGRvbixyYW5keSkuCnBhcmVudChkb24sbWlrZSkuCnBhcmVudChkb24sYW5uZSkuCnBhcmVudChyb3NpZSxyYW5keSkuCnBhcmVudChyb3NpZSxtaWtlKS4KcGFyZW50KHJvc2llLGFubmUpLgpwYXJlbnQoZWxtZXIsZG9uKS4KcGFyZW50KG1pbGRyZWQsZG9uKS4KcGFyZW50KGVzdGhlcixyb3NpZSkuCnBhcmVudChlc3RoZXIsZGlja3kpLgpwYXJlbnQoZ3JlYXRncmFtbWEsZXN0aGVyKS4KcGFyZW50KHJhbmR5LGJsYWlyKS4KCm1hbGUobWVsKS4KbWFsZSh0ZW8pLgpwYXJlbnQobWVsc3IsbWVsKS4KcGFyZW50KG1lbHNyLHRlbykuCgphbWVyaWNhbihhbm5lKS4KYW1lcmljYW4oWCkgOi0gYW5jZXN0b3IoWCxhbm5lKS4KYW1lcmljYW4oWCkgOi0gYW5jZXN0b3IoYW5uZSxYKS4KcmVsYXRpb24oWCxZKSA6LSBhbmNlc3RvcihBLFgpLCBhbmNlc3RvcihBLFkpLgoKZmF0aGVyKFgsWSkgOi0gbWFsZShYKSxwYXJlbnQoWCxZKS4KZmF0aGVyKGdvZCwgXykgOi0gbWFsZShnb2QpLgptb3RoZXIoWCxZKSA6LSBmZW1hbGUoWCkscGFyZW50KFgsWSkuCnNvbihYLFkpIDotIG1hbGUoWCkscGFyZW50KFksWCkuCmRhdWdodGVyKFgsWSkgOi0gZmVtYWxlKFgpLHBhcmVudChZLFgpLgpncmFuZGZhdGhlcihYLFkpIDotIG1hbGUoWCkscGFyZW50KFgsU29tZWJvZHkpLHBhcmVudChTb21lYm9keSxZKS4KYXVudChYLFkpIDotIGZlbWFsZShYKSxzaXN0ZXIoWCxNb20pLG1vdGhlcihNb20sWSkuCmF1bnQoWCxZKSA6LSBmZW1hbGUoWCksc2lzdGVyKFgsRGFkKSxmYXRoZXIoRGFkLFkpLgpzaXN0ZXIoWCxZKSA6LSBmZW1hbGUoWCkscGFyZW50KFBhcixYKSxwYXJlbnQoUGFyLFkpLCBYIFw9IFkuCnVuY2xlKFgsWSkgOi0gYnJvdGhlcihYLFBhcikscGFyZW50KFBhcixZKS4KY291c2luKFgsWSkgOi0gdW5jbGUoVW5jICwgWCksZmF0aGVyKFVuYyxZKS4KYW5jZXN0b3IoWCxZKSA6LSBwYXJlbnQoWCxZKS4KYW5jZXN0b3IoWCxZKSA6LSBwYXJlbnQoWCxTb21lYm9keSksYW5jZXN0b3IoU29tZWJvZHksWSkuCmJyb3RoZXIoWCxZKSA6LSBtYWxlKFgpLHBhcmVudChTb21lYm9keSxYKSxwYXJlbnQoU29tZWJvZHksWSksIFggXD0gWS4=