아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

무비 무빙

시간 제한1초메모리 제한256 MB

요약
각 영화를 최대 한 번씩 써서 0부터 L까지 모든 순간을 상영 시간으로 끊김 없이 덮는 최소 편수를 구합니다.
난이도

보통10점 중 7점

유형
동적 계획법, 비트 연산, 그리디
정답자
아직 제출이 없습니다

문제

베시는 영화관에 있다. 농부 존을 피해 시각 00부터 시각 LL까지 LL분 내내 숨어 있으려고 하며, 그러려면 그 구간의 모든 순간에 어떤 상영 안에 있어야 한다.

영화관은 영화 NN편을 상영한다. ii번째 영화의 상영 시간은 DiD_i분이고, 상영 시작 시각 목록이 정해져 있다. 시각 ss에 시작하는 ii번째 영화의 상영은 ss부터 s+Dis + D_i까지 이어진다. 베시는 늦게 들어가도 되고 먼저 나와도 되므로, 그 상영은 ss와 s+Dis + D_i 사이의 어느 순간이든 베시를 숨겨 준다.

베시는 같은 영화를 두 번 보지 않는다. 또 지금 보고 있는 상영과 겹치는, 같은 영화의 다른 상영으로 옮겨 갈 수 없다. 영화를 너무 많이 보면 줄거리가 헷갈리므로 보는 영화 수를 최소로 하려고 한다.

베시가 시각 00부터 시각 LL까지 계속 상영 안에 있을 수 있는지 판정하고, 가능하면 그렇게 하는 데 필요한 영화의 최소 개수를 구하라.

입력

첫째 줄에 NN과 LL이 주어진다.

다음 NN개 줄에는 영화 한 편의 정보가 주어진다. 각 줄은 상영 시간 DD와 상영 횟수 CC로 시작하고, 그 뒤에 정수 CC개가 이어진다. 이 정수는 그 영화의 상영 시작 시각이며, 서로 다르고, 00 이상 LL 이하이고, 증가하는 순서로 주어진다.

1≤N≤201 \le N \le 20, 1≤L≤1081 \le L \le 10^8, 1≤D≤L1 \le D \le L, 1≤C≤10001 \le C \le 1000.

출력

시각 00부터 시각 LL까지 계속 상영 안에 있기 위해 베시가 보아야 하는 영화의 최소 개수를 출력한다. 어떻게 골라도 불가능하면 −1-1을 출력한다.

힌트

첫 번째 예제에서 베시는 시각 00부터 2020까지 네 번째 영화의 첫 상영을 보고, 시각 2020부터 6565까지 첫 번째 영화의 첫 상영을 보고, 시각 6565부터 100100까지 두 번째 영화의 마지막 상영을 본다.

예제2

  1. 예제 1

    입력
    4 100
    50 3 15 30 55
    40 2 0 65
    30 2 20 90
    20 1 0
    
    예상 출력
    3
    
  2. 예제 2

    입력
    1 10
    5 1 0
    
    예상 출력
    -1