using
System;
using
System.Collections;
using
System.Collections.Generic;
class
GFG
{
static
void
findNumbers(
string
st, ArrayList result,
int
prev,
int
n,
int
K)
{
if
(st.Length == n) {
result.Add(Int32.Parse(st));
return
;
}
if
(st.Length == n - 1) {
if
(prev - K >= 0) {
string
pt =
""
;
pt += (
char
)(prev - K + 48);
findNumbers(st + pt, result,
prev - K, n, K);
}
if
(K != 0 && prev + K < 10) {
string
pt =
""
;
pt += (
char
)(prev + K + 48);
findNumbers(st + pt, result,
prev + K, n, K);
}
}
else
{
for
(
int
j = 1; j <= 9; j++) {
string
pt =
""
;
pt += (
char
)(j + 48);
findNumbers(st + pt, result,
prev, n, K);
}
}
}
static
ArrayList numDifference(
int
N,
int
K)
{
ArrayList res=
new
ArrayList();
string
st =
""
;
if
(N == 1 && K == 0) {
res.Add(0);
}
else
if
(N == 1 && K > 0) {
return
res;
}
for
(
int
i = 1; i < 10; i++) {
string
temp =
""
;
temp += (
char
)(48 + i);
findNumbers(st + temp, res, i, N, K);
st =
""
;
}
return
res;
}
static
void
numDifferenceUtil(
int
N,
int
K)
{
ArrayList res=
new
ArrayList();
res = numDifference(N, K);
for
(
int
i = 0; i < res.Count; i++) {
Console.Write(res[i]+
" "
);
}
}
public
static
void
Main(
string
[]args)
{
int
N = 2, K = 9;
numDifferenceUtil(N, K);
}
}