만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

숫자

면접 대비

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

요약
정수 x와 기분 값 k가 주어질 때, x 이상인 가장 작은 y를 구합니다. k가 1이면 한 자리만 다른 수도 허용합니다.
난이도

보통10점 중 5점

유형
완전 탐색, 구현, 그리디
정답자
아직 제출이 없습니다

문제

아냐는 같은 숫자로만 이루어진 수를 좋아한다. 그래서 777이나 5555는 좋아하지만, 1234는 전혀 좋아하지 않는다.

아냐의 기분이 좋을 때는 같은 숫자로만 이루어진 수를 여전히 모두 좋아하고, 여기에 숫자 하나만 빼고 나머지 자릿수가 모두 같은 수도 좋아한다. 예를 들어 77727이 그렇다.

아냐에게 정수 xx가 있다. 아냐는 y≥xy \ge x를 만족하면서 자신이 좋아할 가장 작은 정수 yy를 찾고 싶어 한다.

정수 xx와 아냐의 기분이 좋은지에 대한 정보가 주어질 때, 아냐가 좋아하는 y≥xy \ge x 중 가장 작은 정수를 찾는 프로그램을 작성하라.

입력

첫째 줄에 정수 xx가 주어진다 (1≤x≤10171 \le x \le 10^{17}). 이 수는 32비트 자료형에 저장할 수 없으므로 C++의 long long, Pascal의 int64처럼 64비트 자료형을 사용해야 한다.

둘째 줄에는 0 또는 1인 정수 kk가 주어진다. k=1k = 1이면 아냐의 기분이 좋은 것이고, k=0k = 0이면 그렇지 않은 것이다.

출력

정수 yy를 한 줄에 출력한다.

다음 성질을 만족해야 한다.

  • y≥xy \ge x
  • k=0k = 0이면 yy의 모든 자릿수가 같아야 한다.
  • k=1k = 1이면 yy의 자릿수 중 하나를 제외한 나머지 자릿수가 모두 같아야 한다.

예제2

  1. 예제 1

    입력
    700
    0
    
    예상 출력
    777
    
  2. 예제 2

    입력
    700
    1
    
    예상 출력
    700