Start with Download Speed (direct max flow). Then try Police Chase (min-cut). Then School Dance (bipartite matching). For each problem, draw the graph on paper first. Identify the source, sink, and edge capacities.
Think about what flow represents in the problem context. Debug by printing the residual graph after each augmentation. Check that capacities are updated correctly. Verify your BFS finds the shortest path.