Certainly! Here is a test case generator for the given problem statement:

```python
import random

def tcgen():
    # Define the constraints
    N = random.randint(1, 2 * 10**5)
    M = random.randint(1, 2 * 10**5)
    
    L = []
    R = []

    for _ in range(N):
        l = random.randint(0, M)
        r = random.randint(l + 1, M + 1)
        L.append(l)
        R.append(r)

    # Prepare the input in the required format
    input_str = f"{N} {M}\n"
    for l, r in zip(L, R):
        input_str += f"{l} {r}\n"

    return input_str

# Example usage
if __name__ == "__main__":
    print(tcgen())
```

### Explanation of the Generator:

1. **Constraints Handling**:
    - `N` is the number of people and is chosen randomly between 1 and \(2 \times 10^5\).
    - `M` is the number of chairs and is also chosen randomly between 1 and \(2 \times 10^5\).

2. **Generating L and R**:
    - For each person, generate `L_i` such that \(0 \leq L_i\ \leq M\).
    - Generate `R_i` such that \(L_i < R_i \leq M + 1\).

3. **Formatting the Input**:
    - The input starts with `N` and `M`.
    - For each person, it outputs the pair `L_i` and `R_i` as required by the problem statement.

### Example Output from the Generator:
```
72439 15239
125 632
2457 9674
...
```

This generated output can be used directly to test the function that solves the problem. Make sure to run your solution with these generated test cases to verify its correctness and performance.