import bisect
def find_port(ports, target):
"""
Returns the first integer in ports that equals the target or is greater.
If there is no solution, returns -1.
Args:
ports (list): [80, 22, 443, 21]
target (int): 25
Returns:
int: The first port number greater than or equal to the target, or -1 if not found.
"""
# Find the insertion point for the target in the sorted list
index = bisect.bisect_left(ports, target)
# If the target is in the list or there's a port greater than the target, return it
if index != len(ports):
return ports[index]
# If no port is greater than or equal to the target, return -1
return
aW1wb3J0IGJpc2VjdAoKZGVmIGZpbmRfcG9ydChwb3J0cywgdGFyZ2V0KToKICAgICIiIgogICAgUmV0dXJucyB0aGUgZmlyc3QgaW50ZWdlciBpbiBwb3J0cyB0aGF0IGVxdWFscyB0aGUgdGFyZ2V0IG9yIGlzIGdyZWF0ZXIuCiAgICBJZiB0aGVyZSBpcyBubyBzb2x1dGlvbiwgcmV0dXJucyAtMS4KCiAgICBBcmdzOgogICAgICAgIHBvcnRzIChsaXN0KTogWzgwLCAyMiwgNDQzLCAyMV0KICAgICAgICB0YXJnZXQgKGludCk6IDI1CgogICAgUmV0dXJuczoKICAgICAgICBpbnQ6IFRoZSBmaXJzdCBwb3J0IG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRhcmdldCwgb3IgLTEgaWYgbm90IGZvdW5kLgogICAgIiIiCiAgICAjIEZpbmQgdGhlIGluc2VydGlvbiBwb2ludCBmb3IgdGhlIHRhcmdldCBpbiB0aGUgc29ydGVkIGxpc3QKICAgIGluZGV4ID0gYmlzZWN0LmJpc2VjdF9sZWZ0KHBvcnRzLCB0YXJnZXQpCiAgICAKICAgICMgSWYgdGhlIHRhcmdldCBpcyBpbiB0aGUgbGlzdCBvciB0aGVyZSdzIGEgcG9ydCBncmVhdGVyIHRoYW4gdGhlIHRhcmdldCwgcmV0dXJuIGl0CiAgICBpZiBpbmRleCAhPSBsZW4ocG9ydHMpOgogICAgICAgIHJldHVybiBwb3J0c1tpbmRleF0KICAgIAogICAgIyBJZiBubyBwb3J0IGlzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdGFyZ2V0LCByZXR1cm4gLTEKICAgIHJldHVybg==