만드는 중입니다

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

아주 이상한 문자열

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

요약
k와 m이 주어질 때, 길이가 m 이하이고 strangeness가 k인 소문자 문자열을 만듭니다.
난이도

어려움10점 중 9점

유형
문자열 매칭, 수학, 구현
정답자
아직 제출이 없습니다

문제

프로페서 X는 아침마다 수수께끼 푸는 것을 좋아합니다. 하지만 병든 교수에게도 이번 문제는 너무 어려웠습니다.

교수는 특히 문자열에 대해 이상한 함수를 정의하기를 좋아합니다. 그런 함수의 예로 GG와 FF가 있습니다.

부분 문자열은 원래 문자열의 앞과 뒤에서 일부 문자(0개일 수도 있음)를 지워서 얻은 문자열입니다. ii번째 접두사는 앞에서 아무것도 지우지 않고 정확히 ii개의 문자만 남긴 문자열입니다. ii번째 접미사는 뒤에서 아무것도 지우지 않고 앞에서 정확히 i−1i-1개의 문자를 지운 문자열입니다.

문자열 ss에 대해 GiG_i는 ii번째 접두사의 접미사 중에서 ss의 접두사이면서 ii번째 접두사 자신과는 같지 않은 가장 긴 것의 길이입니다. FiF_i는 ii번째 접미사의 접두사 중에서 ss의 접두사인 가장 긴 것의 길이입니다. 교수가 G1=0G_1 = 0, F1=0F_1 = 0으로 정했으며, 그와 논쟁하기는 어렵습니다.

문자열의 이상함은 ii가 1부터 ∣s∣|s|까지일 때 각 ii에 대한 GiG_i와 FiF_i의 곱을 모두 더한 값입니다. 이상함이 정확히 kk인, 길이가 mm 이하인 문자열을 찾아야 합니다.

울버린을 만났을 때 교수는 동료에게 도움을 청했습니다. 하지만 그 영웅에게도 이 수수께끼는 너무 어려웠습니다. 여러분은 이 문제를 풀 수 있습니까?

입력

첫 번째 줄에 정수 kk와 mm이 주어집니다(1≤k≤10141\le k\le 10^{14}). mm의 값은 테스트 그룹마다 고정되어 있으며, 채점 절을 참고하세요.

출력

이상함이 kk인, 길이가 mm 이하인 소문자 라틴 문자열을 출력합니다. 조건을 만족하는 문자열이 여럿이면 아무거나 출력해도 됩니다. 답이 존재함이 보장됩니다.

힌트

문자열 aaaa를 보겠습니다. 이 문자열의 GG는 [0,1,2,3][0, 1, 2, 3]이고 FF는 [0,3,2,1][0, 3, 2, 1]입니다. 따라서 이 문자열의 이상함은 0⋅0+1⋅3+2⋅2+3⋅1=100 \cdot 0 + 1 \cdot 3 + 2 \cdot 2 + 3 \cdot 1 = 10입니다.

예제1

  1. 예제 1

    입력
    10 25
    
    예상 출력
    aaaab