Max Flow Minimum Cut Algorithm