Убедитесь, что вы выводите символ перевода строки и очищаете буфер потока вывода (команда flush языка) после каждого выведенного запроса. Иначе решение может получить вердикт Timeout.
M = int(input())
L = int(input())
x = int(input())
y = int(input())
def robot(x,y):
if (1 < x < M) and (1 < y < L) and (1 != x) and (1 != y):
print ("inside ?", flush=True)
elif (1 == x) or (x == M) or (1 == y) or (y == L):
print ("border ?", flush=True)
else:
print ("End of program", flush=True)
exit(0)
robot(x,y)
while (3 <= M <= 100000) and (3 <= 100000):
r_go = input()
if r_go == 'R':
y += 1
robot(x,y)
elif r_go == 'L':
y -= 1
robot(x,y)
elif r_go == 'U':
x = x - 1
robot(x,y)
elif r_go == 'D':
x += 1
robot(x,y)