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

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

달걀 낙하 기록

면접 대비

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

요약
안전과 파손 낙하 기록을 바탕으로 깨질 수 있는 가장 낮은 층과 깨지지 않을 수 있는 가장 높은 층을 출력합니다.
난이도

쉬움10점 중 2점

유형
구간, 구현
정답자
아직 제출이 없습니다

문제

달걀 두 개와 kk층짜리 건물이 있다. 달걀을 떨어뜨려도 깨지지 않는 가장 높은 층을 찾는 것이 고전적인 수수께끼다.

누군가 이미 이 실험을 했고 기록을 남겨 두었다. 기록에는 달걀을 떨어뜨린 층 번호와 그때의 결과가 적혀 있다. 이 기록만 보고 두 값을 구한다. 하나는 달걀이 깨질 수도 있는 가장 낮은 층이고, 다른 하나는 달걀이 깨지지 않을 수도 있는 가장 높은 층이다.

11층에서 떨어뜨린 달걀은 깨지지 않고, kk층에서 떨어뜨린 달걀은 반드시 깨진다. 기록은 서로 모순되지 않는다. 즉 xx층에서 깨지지 않았다면 그보다 낮은 층에서도 깨지지 않고, yy층에서 깨졌다면 그보다 높은 층에서도 깨진다.

입력

첫째 줄에 정수 nn과 kk가 공백 하나로 구분되어 주어진다 (1≤n≤1001 \le n \le 100, 3≤k≤1003 \le k \le 100). nn은 기록된 낙하 횟수, kk는 건물의 층수다. 다음 nn개 줄에는 달걀을 떨어뜨린 층 번호와 그 결과가 공백 하나로 구분되어 주어진다. 층 번호는 11 이상 kk 이하이고, 결과는 SAFE 또는 BROKEN 중 하나다.

출력

한 줄에 정수 두 개를 공백 하나로 구분해 출력한다. 첫 번째 수는 기록과 모순되지 않으면서 달걀이 깨질 수도 있는 가장 낮은 층이고, 두 번째 수는 달걀이 깨지지 않을 수도 있는 가장 높은 층이다.

예제3

  1. 예제 1

    입력
    2 10
    4 SAFE
    7 BROKEN
    
    예상 출력
    5 6
    
  2. 예제 2

    입력
    3 5
    2 SAFE
    4 SAFE
    3 SAFE
    
    예상 출력
    5 4
    
  3. 예제 3

    입력
    4 3
    2 BROKEN
    2 BROKEN
    1 SAFE
    3 BROKEN
    
    예상 출력
    2 1