Mistrzostwa Polski Szkół Średnich w Programowaniu Zespołowym 2024

2020-2022 2023 Regulations Schedule RODO info Ranking

Problem description


Trening szachowy
(trening-sz)
Memory limit: 64 MB
Time limit: 5.00 s

Krzysztof jako zapalony szachista wie, że trzeba trenować. Co więcej, nie wystarczy trenować ciężko i często – trzeba też trenować mądrze. Trening Krzysztofa ma ustalony format: ustawia on wszystkie figury na szachownicy w pewien sposób (inny każdego dnia) i próbuje wybrać najlepszy możliwy ruch czarnymi z tej sytuacji.

By jego treningi były jak najefektywniejsze postanowił bardzo dokładnie zaplanować początkowe sytuacje (czyli ułożenia figur) na szachownicy w następnych dniach – konkretniej, wybrał on N różnych sytuacji i zdefiniował wśród nich M par sytuacji podobnych. Jeżeli dwie sytuacje są podobne, to Krzysztof będzie chciał przetrenować co najwyżej jedną z nich.

Teraz Krzysztof zastanawia się na jak długo starczy mu największy możliwy podzbiór wybranych N sytuacji, w którym żadne dwie sytuacje nie są podobne.

Pomóż młodemu szachiście i wskaż mu jak długo może trenować na obecnym zestawie.

Napisz program, który: wczyta liczbę rozpatrywanych sytuacji na szachownicy, liczbę par podobnych sytuacji i te pary, wyznaczy wielkość największego podzbioru sytuacji, w którym żadne dwie nie są podobne i wypisze wynik na standardowe wyjście.

Wejście

W pierwszym wierszu wejścia znajdują się dwie dodatnie liczby całkowite N i M, oddzielone pojedynczym odstępem i oznaczające odpowiednio liczbę rozpatrywanych sytuacji i liczbę par sytuacji, które Krzysztof uznał za podobne.

W kolejnych M wierszach wejścia znajduje się opis podobnych par sytuacji. Opis każdej pary składa się z dwóch liczb całkowitych Ai, Bi oddzielonych pojedynczym odstępem i oznaczających, że sytuacja o numerze Ai jest podobna do sytuacji o numerze Bi.

Wyjście

W pierwszym (jedynym) wierszu wyjścia powinna się znaleźć jedna dodatnia liczba całkowita – największa liczba sytuacji, jakie można wybrać, tak by żadne dwie nie były podobne.

Ograniczenia

1 ≤ N ≤ 100, N − 1 ≤ M ≤ N + 15, każde podobieństwo jest podane na wejściu dokładnie raz, graf podobieństw jest spójny, podobieństwa łączą tylko różne sytuacje.

Podzadania

W testach wartych łącznie 10% punktów dodatkowo zachodzi warunek N ≤ 20.

W innych testach wartych łącznie 15% punktów dodatkowo zachodzi warunek M = N − 1.

W innych testach wartych łącznie 15% punktów dodatkowo zachodzi warunek M = N.

W innych testach wartych łącznie 25% punktów testy są generowane losowo.

Przykład

Input Output Explanation
5 5
1 2
2 3
1 4
3 4
3 5
3

Optymalny podzbiór sytuacji to {2, 4, 5}.