STDOUT.sync = true # DO NOT REMOVE!
# Average of all values.
# @note Result has same type as sum; integer result is truncated.
def mean(*args)
args.sum / args.size
end
# Upper-left and lower-right corners bounding the current search
# area within the building.
# @note Intervals are half-open for each axis: [x0, x1), [y0, y1)
x0, y0 = 0, 0
x1, y1 = gets.split.map(&:to_i)
# Maximum number of turns before game over.
n = gets.to_i
# Current position of Batman.
px, py = gets.split.map(&:to_i)
# Game loop.
n.times do
# The direction of the bomb from Batman's current position
# (U, UR, R, DR, D, DL, L or UL).
bomb_dir = gets.chomp
# Move Batman closer to the bomb and reduce the search area.
# @note Intercardinal directions are handled as a series of
# cardinal directions.
bomb_dir.each_char do |dir|
case dir
when 'U'
py, y1 = mean(y0, py), py
when 'D'
py, y0 = mean(py, y1), py+1
when 'L'
px, x1 = mean(x0, px), px
when 'R'
px, x0 = mean(px, x1), px+1
end
end
# Emit Batman's updated position.
puts "#{px} #{py}"
end
U1RET1VULnN5bmMgPSB0cnVlICMgRE8gTk9UIFJFTU9WRSEKCiMgQXZlcmFnZSBvZiBhbGwgdmFsdWVzLgojIEBub3RlIFJlc3VsdCBoYXMgc2FtZSB0eXBlIGFzIHN1bTsgaW50ZWdlciByZXN1bHQgaXMgdHJ1bmNhdGVkLgpkZWYgbWVhbigqYXJncykKICBhcmdzLnN1bSAvIGFyZ3Muc2l6ZQplbmQKCiMgVXBwZXItbGVmdCBhbmQgbG93ZXItcmlnaHQgY29ybmVycyBib3VuZGluZyB0aGUgY3VycmVudCBzZWFyY2gKIyBhcmVhIHdpdGhpbiB0aGUgYnVpbGRpbmcuCiMgQG5vdGUgSW50ZXJ2YWxzIGFyZSBoYWxmLW9wZW4gZm9yIGVhY2ggYXhpczogW3gwLCB4MSksIFt5MCwgeTEpCngwLCB5MCA9IDAsIDAKeDEsIHkxID0gZ2V0cy5zcGxpdC5tYXAoJjp0b19pKQojIE1heGltdW0gbnVtYmVyIG9mIHR1cm5zIGJlZm9yZSBnYW1lIG92ZXIuCm4gPSBnZXRzLnRvX2kKIyBDdXJyZW50IHBvc2l0aW9uIG9mIEJhdG1hbi4KcHgsIHB5ID0gZ2V0cy5zcGxpdC5tYXAoJjp0b19pKQoKIyBHYW1lIGxvb3AuCm4udGltZXMgZG8KICAjIFRoZSBkaXJlY3Rpb24gb2YgdGhlIGJvbWIgZnJvbSBCYXRtYW4ncyBjdXJyZW50IHBvc2l0aW9uCiAgIyAoVSwgVVIsIFIsIERSLCBELCBETCwgTCBvciBVTCkuCiAgYm9tYl9kaXIgPSBnZXRzLmNob21wCiAgIyBNb3ZlIEJhdG1hbiBjbG9zZXIgdG8gdGhlIGJvbWIgYW5kIHJlZHVjZSB0aGUgc2VhcmNoIGFyZWEuCiAgIyBAbm90ZSBJbnRlcmNhcmRpbmFsIGRpcmVjdGlvbnMgYXJlIGhhbmRsZWQgYXMgYSBzZXJpZXMgb2YKICAjIGNhcmRpbmFsIGRpcmVjdGlvbnMuCiAgYm9tYl9kaXIuZWFjaF9jaGFyIGRvIHxkaXJ8CiAgICBjYXNlIGRpcgogICAgd2hlbiAnVScKICAgICAgcHksIHkxID0gbWVhbih5MCwgcHkpLCBweQogICAgd2hlbiAnRCcKICAgICAgcHksIHkwID0gbWVhbihweSwgeTEpLCBweSsxCiAgICB3aGVuICdMJwogICAgICBweCwgeDEgPSBtZWFuKHgwLCBweCksIHB4CiAgICB3aGVuICdSJwogICAgICBweCwgeDAgPSBtZWFuKHB4LCB4MSksIHB4KzEKICAgIGVuZAogIGVuZAogICMgRW1pdCBCYXRtYW4ncyB1cGRhdGVkIHBvc2l0aW9uLgogIHB1dHMgIiN7cHh9ICN7cHl9IgplbmQ=