
class Coord
  attr_accessor :x, :y
  def initialize(__x, __y)
    @x = __x
    @y = __y
  end
  
  def +(coord)
    Coord.new(@x + coord.x, @y + coord.y)
  end
  
  def zero?
    @x == 0 && @y == 0
  end
  
  def to_s
    "#{@x} #{@y}"
  end
end

class MagicalTile
  attr_accessor :moved
  
  def initialize(tile_symbol)
    @vector = Coord.new(0, 0)
    @moved = false
    case tile_symbol
    when "<"
      @vector.x = -1
    when ">"
      @vector.x = 1
    when "^"
      @vector.y = -1
    when "v"
      @vector.y = 1
    end
  end
  
  def move(current_pos)
    unless @moved
      @moved = true
      current_pos + @vector
    end
  end
  
  def stop?
    @vector.zero?
  end
end

class MagicalFloor
  def initialize(__width, __height)
    @width = __width
    @height = __height
    @tiles = Array.new(@height) do
      input_line(gets.strip)
    end
  end
  
  def input_line(line)
    line.each_char.map{ |c| MagicalTile.new(c) }
  end
  
  def run
    pos = Coord.new(0, 0)
    until tile(pos).stop?
      next_pos = tile(pos).move(pos)
      return "LOOP" unless next_pos
      pos = next_pos
    end
    pos.to_s
  end
  
  def tile(pos)
    @tiles[pos.y][pos.x]
  end
end

def input_floor_size
  gets.strip.split.map(&:to_i)
end

floors = []
while true
  height, width = input_floor_size
  break if width == 0 && height == 0
  floors << MagicalFloor.new(width, height)
end

puts floors.map(&:run).join("\n")