**Problem Statement:**
Given the required input arguments, write an efficient algorithm to solve the **Walls and Gates** problem. Implement the required logic as specified by standard definitions for this classic algorithmic challenge.
**Hint / Expected Approach:**
Multi-source BFS from all gates simultaneously
**Edge Cases to Consider:**
- (1) No gates in grid
- (2) No empty rooms
- (3) Room unreachable from any gate