FUM algorithm