Certainly! Below is the test case generator for the provided problem statement "Long and Narrow":

```python
import random

def tcgen():
    # Number of carriages (between 1 and 10^3, inclusive)
    n = random.randint(1, 1000)
    
    # Speeds of the carriages (each between 1 and 10^3, inclusive)
    speeds = [random.randint(1, 1000) for _ in range(n)]
    
    return n, speeds

# Example of generating a test case
n, speeds = tcgen()
print(n)
print(" ".join(map(str, speeds)))
```

### Explanation:
1. **Number of Carriages (`n`)**: The number of carriages is randomly chosen between 1 and 1000, inclusive.
2. **Speeds of Carriages (`speeds`)**: Each carriage's speed is randomly chosen between 1 and 1000, inclusive. This is stored in a list of size `n`.

### Example Output:
Here is an example output when you run the test case generator:

```
5
421 526 124 965 879
```

This represents:
- `n = 5` (Number of carriages)
- `speeds = [421, 526, 124, 965, 879]` (Speeds of the carriages)

You can use this generator to produce multiple test cases for the problem "Long and Narrow".