using
System;
class
GFG {
static
int
largestNDigitNumber(
int
N,
int
currentStep,
int
K,
int
X,
int
Y,
int
currentValue)
{
if
(currentValue == Math.Pow(10, N) - 1)
return
currentValue;
if
(currentStep > K || N < 1 || K < 1)
return
0;
if
(currentValue >= Math.Pow(10, N))
return
0;
int
result2 = largestNDigitNumber(
N, currentStep + 1, K, X, Y, currentValue + X);
int
result1 = largestNDigitNumber(
N, currentStep + 1, K, X, Y, currentValue * Y);
if
(result1 == 0 && result2 == 0)
return
currentValue;
return
result1 > result2 ? result1 : result2;
}
public
static
void
Main(
string
[] args)
{
int
N = 2, K = 10, X = 2, Y = 3;
int
largest = largestNDigitNumber(N, 0, K, X, Y, 0);
if
(largest < Math.Pow(10, (N - 1))) {
Console.Write(
"-1"
);
}
else
Console.Write(largest);
}
}