import
java.util.*;
class
GFG {
public
static
void
find(
int
arr[],
int
n)
{
int
flag =
0
;
HashMap<Integer, Integer> freq =
new
HashMap<>();
ArrayList<Integer> a =
new
ArrayList<Integer>();
for
(
int
i =
0
; i < n; i++) {
a.add(arr[i]);
if
(freq.containsKey(arr[i])) {
freq.put(arr[i], freq.get(arr[i]) +
1
);
}
else
{
freq.put(arr[i],
1
);
}
}
int
max = Collections.max(a);
int
freqsum =
0
;
for
(Map.Entry<Integer, Integer> i :
freq.entrySet()) {
if
(i.getValue() >=
3
)
flag = -
1
;
}
ArrayList<Integer> ascending
=
new
ArrayList<Integer>();
ArrayList<Integer> descending
=
new
ArrayList<Integer>();
for
(Map.Entry<Integer, Integer> i :
freq.entrySet()) {
if
(i.getValue() >
1
)
freqsum +=
1
;
else
freqsum += i.getValue();
}
if
(a.size() == freqsum)
flag =
1
;
else
{
if
(freq.get(max) >=
2
)
flag = -
1
;
else
flag =
1
;
}
if
(flag ==
1
) {
for
(Map.Entry<Integer, Integer> i :
freq.entrySet()) {
if
(i.getValue() ==
1
)
descending.add(i.getKey());
else
{
descending.add(i.getKey());
ascending.add(i.getKey());
}
}
Collections.sort(descending);
Collections.sort(ascending,
Collections.reverseOrder());
for
(
int
i =
0
; i < descending.size(); i++)
System.out.print(descending.get(i) +
" "
);
for
(
int
i =
0
; i < ascending.size(); i++)
System.out.print(ascending.get(i) +
" "
);
}
else
{
System.out.println(
"Not Possible!"
);
}
}
public
static
void
main(String[] args)
{
int
n =
5
;
int
[] arr =
new
int
[n];
arr[
0
] =
5
;
arr[
1
] =
7
;
arr[
2
] =
2
;
arr[
3
] =
1
;
arr[
4
] =
2
;
find(arr, n);
}
}