Was wondering how to code this in C :

There are 'H' Humans and 'C' Cannibals on the bank of
a river. They are to be transported from the left bank
of a river to the right bank ,using a boat.
The boat can take maximum of 2 persons.
At no point of time, a situation may arise, wherein:
No. Of Humans<No. Of Cannibals.
i.e., H=0 OR H>=C.

Obviously, it must involve Recursion, but I am not able to figure out how.
Its probably pretty simple, but none-the-less, give it a try.

Also, if possible, tell me is there any way to code it non-recursively.