Дороги не роскошь, а место передвижения | 프로그래밍의 벗 PivotOJ
PivotOJ

Дороги не роскошь, а место передвижения

시간 제한: 2000ms메모리 제한: 1024MB출처: MOOI 2017-18 quallongBOJ 30738

문제

Страна N состоит из nn городов, пронумерованных от 11 до nn, однако в ней совсем нет дорог! Президентом страны было принято решение построить mm дорог в течение mm дней, при этом каждый день будет строиться ровно одна новая дорога. Дополнительно, в целях поддержки миграции населения было принято решение сделать все дороги односторонними, и планировать дорожную сеть таким образом, что если существует путь из города ii в город jj, то пути из города jj в город ii не существует.

Для популяризации новых дорог среди населения страны N было решено ежедневно проводить серию автопробегов по городам страны. Каждая машина автопробега стартует в некотором городе, после чего совершает перемещения по уже построенным к данному дню дорогам и заканчивает свой маршрут также в каком-нибудь городе. При этом разрешается, чтобы город старта совпадал с городом финиша, то есть чтобы машина не совершала ни одного переезда по дорогам. Преследуя одновременно цели порадовать жителей страны и цели экономии топлива водителей, организаторы решили каждый день выбирать набор маршрутов согласно следующим правилам:

  1. Каждый город должен быть посещён машиной автопробега. Посещёнными считаются начальный, конечный и все промежуточные города на пути любой из машин.
  2. Никакой город не должен быть посещён машинами автопробега более одного раза.
  3. Общее количество используемых машин должно быть минимальным.

Министерство транспорта страны N уже запланировало постройку ровно одной дороги для каждого из ближайших mm дней. Теперь представители министерства просят вас для каждого из дней определить, какое минимальное количество машин потребуется для автопробега. Считайте, что в день ii доступны дороги, построенные в дни 1,2,,i1, 2, \ldots, i.

입력

В первой строке входных данных записаны два числа nn и mm (2n10002 \leq n \leq 1000, 1m1000001 \leq m \leq 100\,000) --- количество городов в стране N и количество дней, в течение которых будут строиться дороги.

В каждой из последующих mm строк записаны два целых числа uiu_i и viv_i (1ui,vin1 \leq u_i, v_i \leq n, uiviu_i \ne v_i), означающих что в ii-й день будет построена односторонняя дорога из города uiu_i в город viv_i. Допускается, что будет построена дорога между двумя городами, уже соединёнными дорогой ранее. Гарантируется, что после постройки любой дороги, если существует путь из города aa в город bb, то не существует пути из города bb в город aa.

출력

Выведите mm чисел, ii-е из которых равняется минимальному количеству машин для автопробега после постройки первых ii дорог.

힌트

В первом примере после после постройки первых двух дорог всё равно потребуется запустить как минимум две машины. Например, одна из них может проехать из города 11 в город 22, а другая начнёт в городе 33 и закончит автопробег в нём же. После постройки всех дорог достаточно одной машины, которая поедет по маршруту 1231 \rightarrow 2 \rightarrow 3.

Во втором примере, после постройки всех дорог можно было бы посетить все города используя только два автомобиля, но этому мешает условие, что никакой город не должен быть посещён больше, чем одним автомобилем пробега.

예제

예제 1

입력
3 3
1 2
1 3
2 3
출력
2 2 1

예제 2

입력
5 4
1 2
2 3
4 2
2 5
출력
4 3 3 3

예제 3

입력
4 4
1 2
1 2
3 4
3 4
출력
3 3 2 2
이 문제는 채점 준비 중입니다. 테스트 데이터가 확보되면 제출이 가능합니다.