MouseMouse, 79 bytes
?A:?B:A.!" is "A.B.<["less than"]A.B.>["greater than"]A.B.=["equal to"]" "B.!$
When strings are encountered they're immediately written to STDOUT rather than being put on the stack. The stack can contain only integers.
Ungolfed:
? A: ~ Read an integer A from STDIN
? B: ~ Read an integer B from STDIN
A. ! ~ Write A to STDOUT
" is "
A. B. < [ "less than" ] ~ If A < B
A. B. > [ "greater than" ] ~ If A > B
A. B. = [ "equal to" ] ~ If A == B
" "
B. ! ~ Write B to STDOUT
$ ~ End of program