어느 공장에는 n개의 알림등이 있습니다. 각 알림등은 항상 켜짐 → 깜빡임 → 꺼짐 순서로 반복되며, 각 상태가 지속되는 시간은 알림등마다 다릅니다.
시간은 1초부터 시작하며, 모든 알림등은 처음에 켜짐 상태로 시작합니다.
공장 시스템은 모든 알림등이 동시에 깜빡임 상태가 되는 순간 점검 알림을 발생시킵니다.
예를 들어 알림등이 2개이고, 각 알림등의 주기가 다음과 같다고 가정합니다.
| 알림등 | 켜짐 | 깜빡임 | 꺼짐 |
|---|
| --- | ---: | ---: | ---: |
| 1번 | 3초 | 2초 | 2초 |
| 2번 | 5초 | 1초 | 3초 |
1번 알림등은 4초~5초, 11초~12초, 18초~19초 ... 에 깜빡임 상태가 됩니다.
2번 알림등은 6초, 15초, 24초 ... 에 깜빡임 상태가 됩니다.
이 경우 두 알림등이 동시에 깜빡임 상태가 되는 가장 빠른 시각은 존재하지 않으므로 `-1`을 반환합니다.
알림등 n개의 상태 지속 시간을 담은 2차원 정수 배열 `lights`가 매개변수로 주어집니다.
모든 알림등이 동시에 깜빡임 상태가 되는 가장 빠른 시각을 return 하도록 `solution` 함수를 완성해 주세요.
만약 모든 알림등이 동시에 깜빡임 상태가 되는 경우가 존재하지 않는다면 `-1`을 return 해주세요.