private boolean find(int leftIndex) {
        for (int i = 0; i < _m; i++) {
            if (_match[leftIndex][i] == 1 && _visit[i] == 0) {
                _visit[i] = 1;
                if (_rightToLeft[i] == -1 || find(_rightToLeft[i])) {
                    _rightToLeft[i] = leftIndex;
                    return true;
                }
            }
        }
        return false;
    }