def closest_valid_sum(A, B, X):
    n, m = len(A), len(B)
    
    i = 0         
    j = m - 1     
    best_sum = float('-inf')
    
    while i < n and j >= 0:
        current_sum = A[i] + B[j]
        
        if current_sum > X:
          
            j -= 1
        else:
          
            best_sum = max(best_sum, current_sum)
            i += 1
            
    return best_sum