Accept Reject algorithm