import
java.util.*;
class
GFG{
static
void
splitSets(
int
a[],
int
n,
int
k)
{
Map<Integer, Integer> freq =
new
HashMap<>();
Map<Integer,
ArrayList<Integer>> ans =
new
HashMap<>();
for
(
int
i =
0
; i < n; i++)
{
if
(freq.get(a[i]) !=
null
)
{
if
(freq.get(a[i]) +
1
> k)
{
System.out.println(-
1
);
return
;
}
}
freq.put(a[i], freq.getOrDefault(a[i],
0
) +
1
);
if
( ans.get(freq.get(a[i])) ==
null
)
ans.put(freq.get(a[i]),
new
ArrayList<Integer>());
ans.get(freq.get(a[i])).add(a[i]);
}
for
(ArrayList<Integer> it : ans.values())
{
System.out.print(
"( "
);
for
(
int
i =
0
; i < it.size() -
1
; i++)
{
System.out.print(it.get(i) +
" "
);
}
System.out.print(it.get(it.size() -
1
));
System.out.println(
" )"
);
}
}
public
static
void
main (String[] args)
{
int
arr[] = {
2
,
1
,
2
,
3
,
1
,
4
,
1
,
3
,
1
,
4
};
int
n = arr.length;
int
k =
4
;
splitSets(arr, n, k);
}
}