using
System;
using
System.Collections;
public
class
GFG {
class
Pair {
public
int
a;
public
int
b;
public
Pair(
int
a,
int
b)
{
this
.a = a;
this
.b = b;
}
}
static
void
printAllmoves(
int
n,
int
m,
int
x,
int
y,
int
moves,
ArrayList ArrayOfMoves)
{
if
(x <= 0 || y <= 0 || x >= n + 1
|| y >= m + 1 && moves >= 0) {
ArrayOfMoves.Add(
new
Pair(x, y));
foreach
(Pair ob
in
ArrayOfMoves) {
Console.Write(
"("
+ ob.a +
" "
+ ob.b
+
")"
);
}
Console.WriteLine();
if
(ArrayOfMoves.Count > 1)
ArrayOfMoves.Remove(ArrayOfMoves.Count
- 1);
return
;
}
if
(moves <= 0) {
return
;
}
ArrayOfMoves.Add(
new
Pair(x, y));
printAllmoves(n, m, x, y - 1, moves - 1,
ArrayOfMoves);
printAllmoves(n, m, x, y + 1, moves - 1,
ArrayOfMoves);
printAllmoves(n, m, x - 1, y, moves - 1,
ArrayOfMoves);
printAllmoves(n, m, x + 1, y, moves - 1,
ArrayOfMoves);
if
(ArrayOfMoves.Count > 1) {
ArrayOfMoves.Remove(ArrayOfMoves.Count - 1);
}
}
static
public
void
Main()
{
int
N = 2, M = 2;
int
X = 1;
int
Y = 1;
int
K = 2;
ArrayList ArrayOfMoves =
new
ArrayList();
printAllmoves(N, M, X, Y, K, ArrayOfMoves);
}
}