Hurtownia

Limit pamięci: 64 MB

Bajtazar prowadzi hurtownię z materiałami budowlanymi. W tym sezonie hitem są panele podłogowe i większość dochodu hurtowni pochodzi z ich sprzedaży. Niestety, dość często zdarza się sytuacja, że odwiedzający hurtownię klient składa zamówienie, którego nie da się zrealizować, gdyż w magazynie jest zbyt mało paneli. Żeby nie tracić klientów, Bajtazar postanowił zminimalizować liczbę takich przypadków.

W tym celu przygotował plan pracy na najbliższe dni. Przeanalizował umowy z producentami paneli i na ich podstawie wyznaczył ciąg . Liczba oznacza, że rano -tego dnia do magazynu zostanie dostarczonych opakowań paneli.

Bajtazar zrobił też zestawienie ofert, które zgłosili klienci hurtowni, i na jego podstawie wyznaczył ciąg . Liczba oznacza, że w południe -tego dnia w hurtowni zjawi się klient, który będzie chciał zakupić opakowań paneli. Jeśli Bajtazar zdecyduje się na realizację zamówienia klienta, to będzie je musiał zrealizować w całości. Jeśli w momencie wizyty klienta w magazynie jest mniej opakowań paneli niż potrzebuje klient, to Bajtazar będzie zmuszony odrzucić takie zamówienie. Jeśli natomiast paneli jest wystarczająco dużo, to Bajtazar może zdecydować, czy zrealizować zamówienie klienta, czy też nie.

Na podstawie powyższych danych Bajtazar chce stwierdzić, które zamówienia powinien zrealizować, a które odrzucić, tak by liczba odrzuconych zamówień była jak najmniejsza. Zakładamy, że na początku pierwszego dnia magazyn hurtowni jest pusty.

Wejście

W pierwszym wierszu standardowego wejścia znajduje się liczba całkowita (). W drugim wierszu znajduje się ciąg liczb całkowitych (). W trzecim wierszu znajduje się ciąg liczb całkowitych (). Liczby w drugim i trzecim wierszu są pooddzielane pojedynczymi odstępami.

W testach wartych 50% punktów zachodzi dodatkowy warunek .

Wyjście

W pierwszym wierszu standardowego wyjścia Twój program powinien wypisać liczbę całkowitą oznaczającą maksymalną liczbę zamówień, które uda się zrealizować Bajtazarowi. W drugim wierszu należy wypisać rosnący ciąg liczb pooddzielanych pojedynczymi odstępami, oznaczający numery klientów, których zamówienia trzeba w tym celu zrealizować, lub pusty wiersz, gdy nie można zrealizować żadnego zamówienia. Klientów numerujemy od 1 do w kolejności przychodzenia do hurtowni. Jeśli istnieje więcej niż jedna poprawna odpowiedź, Twój program powinien wypisać dowolną z nich.

Przykład

Dla danych wejściowych:

6
2 2 1 2 1 0
1 2 2 3 4 4

jednym z poprawnych wyników jest:

3
1 2 4

Autor zadania: Tomasz Idziaszek.