#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; bool topologicalSort(const vector >& edges, vector& node) { int n = edges.size(); node.resize(n); vector restEdges(n, 0); for(int i=0; i q; for(int i=0; i 0){ if(q.empty()){ node.clear(); return false; } int i = q.front(); q.pop(); for(unsigned j=0; j> h >> w; vector a(h), b(w); for(int i=0; i> a[i]; for(int i=0; i> b[i]; sort(a.begin(), a.end()); sort(b.begin(), b.end()); vector > edges(h*w); for(int y=0; y node; topologicalSort(edges, node); vector > ans(h, vector(w)); for(int i=0; i