func main() var n: int :: cui@inputInt() var m: int :: cui@inputInt() var k: int :: cui@inputInt() var op: char :: cui@inputChar() var b: []int :: #[m]int for i(1, m) do b[i - 1] :: cui@inputInt() end for var a: []int :: #[n]int for i(0, n - 1) do a[i] :: cui@inputInt() end for do a.sort() do b.sort() do b.reverse() var f: func<(int, int): int> func add(x: int, y: int): int ret x + y end func func product(x: int, y: int): int ret x * y end func do f :: (op = '+') ?(add, product) var ans: int :: 0 var idx: int :: 0 for i(0, n - 1) while(idx <> m & f(a[i], b[idx]) >= k) do idx :+ 1 end while do ans :+ idx end for do cui@print("\{ans}\n") end func