I have couple of supplied interfaces
public interface Finder<S extends Stack<T>,T extends Item> {
    public S find(S s, int a);
}
public interface Stack<T extends Item> {
    Stack<T> getCopy();
}
and a class that implements the first:
public class SimpleFinder<S extends Stack<T>,T extends Item> implements Finder<S,T>{
    public S find(S s, int a){
         S stack = ....;
         ...
         stack = s.getCopy(); \\Error: incompatible types
                              \\       required: S
                              \\       found:    Stack<T>
        .....
        return stack;
    }
}
If I cannot change any interface what would be the best course of action while keeping the implementation as generic as possible?
EDIT
Some other code which I cannot break instantiates  SimpleFinder<ClassA,ClassB> so I should have two generic types in the implementation as well.