#P4883. Wavy numbers

Wavy numbers

Wavy numbers

题面翻译

题目描述

我们将一类正整数称为“波浪数”,它的每个数位上的数都大于或小于两边数位上的数。例如,3527035270102102747747202033 都是波浪数;而 1231231000100022122212 不是波浪数。

你的任务是找到第 kk 小且能被 nn 整除的波浪数 rr

保证 r1014r \le 10^{14}

输入格式

输入仅有一行,包含两个整数 nnkk1n,k10141 \le n,k \le 10^{14}) 。

输出格式

输出问题的答案 rr,如果答案不存在或大于 101410^{14},则输出-1

说明/提示

第一个样例中,前四个能被 nn 整除的波浪数为:49249261561573873818451845

题目描述

A wavy number is such positive integer that for any digit of its decimal representation except for the first one and the last one following condition holds: the digit is either strictly larger than both its adjacent digits or strictly less than both its adjacent digits. For example, numbers 35270 35270 , 102 102 , 747 747 , 20 20 and 3 3 are wavy and numbers 123 123 , 1000 1000 and 2212 2212 are not.

The task is to find the k k -th smallest wavy number r r that is divisible by n n for the given integer values n n and k k .

You are to write a program that will find the value of r r if it doesn't exceed 1014 10^{14} .

输入格式

The only line of input contains two integers n n and k k , separated by a single space ( 1<=n,k<=1014 1<=n,k<=10^{14} ).

输出格式

Your task is to output the only integer r r — the answer to the given problem. If such number does not exist or it is larger than 1014 10^{14} , then print "-1" (minus one without the quotes) instead.

样例 #1

样例输入 #1

123 4

样例输出 #1

1845

样例 #2

样例输入 #2

100 1

样例输出 #2

-1

样例 #3

样例输入 #3

97461 457

样例输出 #3

1805270103

提示

The values of the first four wavy numbers that are divisible by n n for the first sample are: 492 492 , 615 615 , 738 738 and 1845 1845 .