import
java.util.*;
class
GFG {
static
void
UniversalSubset(List<String> A,
List<String> B)
{
int
n1 = A.size();
int
n2 = B.size();
List<String> res =
new
ArrayList<>();
int
[][] A_fre =
new
int
[n1][
26
];
for
(
int
i =
0
; i < n1; i++)
{
for
(
int
j =
0
; j <
26
; j++)
A_fre[i][j] =
0
;
}
for
(
int
i =
0
; i < n1; i++)
{
for
(
int
j =
0
; j < A.get(i).length(); j++)
{
A_fre[i][A.get(i).charAt(j) -
'a'
]++;
}
}
int
[] B_fre =
new
int
[
26
];
for
(
int
i =
0
; i < n2; i++)
{
int
[] arr =
new
int
[
26
] ;
for
(
int
j =
0
; j < B.get(i).length(); j++)
{
arr[B.get(i).charAt(j) -
'a'
]++;
B_fre[B.get(i).charAt(j) -
'a'
] = Math.max(
B_fre[B.get(i).charAt(j) -
'a'
],
arr[B.get(i).charAt(j) -
'a'
]);
}
}
for
(
int
i =
0
; i < n1; i++)
{
int
flag =
0
;
for
(
int
j =
0
; j <
26
; j++)
{
if
(A_fre[i][j] < B_fre[j])
{
flag =
1
;
break
;
}
}
if
(flag ==
0
)
res.add(A.get(i));
}
if
(res.size() !=
0
)
{
for
(
int
i =
0
; i < res.size(); i++)
{
for
(
int
j =
0
;
j < res.get(i).length();
j++)
System.out.print(res.get(i).charAt(j));
}
System.out.print(
" "
);
}
else
System.out.print(
"-1"
);
}
public
static
void
main (String[] args)
{
List<String> A = Arrays.asList(
"geeksforgeeks"
,
"topcoder"
,
"leetcode"
);
List<String> B = Arrays.asList(
"geek"
,
"ee"
);
UniversalSubset(A, B);
}
}