import
java.util.*;
class
GFG
{
static
void
printPermute(ArrayList<Integer> input,
ArrayList<Integer> spur,
ArrayList<Integer> output)
{
if
(input.size() ==
0
) {
for
(var it : output) {
System.out.print(it +
" "
);
}
for
(var it : spur) {
System.out.print(it +
" "
);
}
System.out.print(
"\n"
);
}
else
{
int
temp;
temp = input.get(input.size() -
1
);
input.remove(input.size() -
1
);
spur.add(temp);
printPermute(input, spur, output);
spur.remove(spur.size() -
1
);
input.add(temp);
if
(spur.size() !=
0
) {
temp = spur.get(spur.size() -
1
);
spur.remove(spur.size() -
1
);
output.add(temp);
printPermute(input, spur, output);
output.remove(output.size() -
1
);
spur.add(temp);
}
}
}
static
void
possiblePermute(
int
n)
{
ArrayList<Integer> spur =
new
ArrayList<Integer>();
ArrayList<Integer> output
=
new
ArrayList<Integer>();
ArrayList<Integer> input =
new
ArrayList<Integer>();
for
(
int
i =
1
; i <= n; i++) {
input.add(i);
}
printPermute(input, spur, output);
}
public
static
void
main(String[] args)
{
int
N =
4
;
possiblePermute(N);
}
}