first(H, [H | _]).
rest(R, [_ | R]).