first splitting algorithm