#include #include struct student { std::size_t scoreIndex; std::size_t prio_1; std::size_t prio_2; student(size_t si, size_t p1, size_t p2) : scoreIndex(si), prio_1(p1), prio_2(p2) {} }; int main() { std::size_t n, m, capacity, prio_1_got = 0, prio_2_got = 0; std::cin >> n >> m >> capacity; std::vector schoolCapacities(m, 0); std::vector studentList; for (size_t i = 0; i < n; i++) { size_t p1, p2; std::cin >> p1 >> p2; studentList.emplace_back(i, p1, p2); } for (auto & s : studentList) { if (schoolCapacities[s.prio_1 - 1] < capacity) { prio_1_got++; schoolCapacities[s.prio_1 - 1]++; } else if (schoolCapacities[s.prio_2 - 1] < capacity) { prio_2_got++; schoolCapacities[s.prio_2 - 1]++; } } std::cout << prio_1_got << " " << prio_2_got << std::endl; return 0; }