time : O(n*m) space :O(n+m)