A Hierarchical Approach to Multi-Agent Path Finding