n, m, t = gets.chomp.split().map(&:to_i)
ans = Array.new(m, 'v')
x = Array.new(m)
y = Array.new(m)

m.times do |i|
  xx, yy = gets.chomp.split().map(&:to_i)
  x[i]= xx
  y[i]= yy
end


def kinitsu(n, m, ans, x, y)
  first = true
  pos = 0
  (1..[n-1,10].min).each do |i|
    current = i
    m.times do |j|
      if current == x[j] && ans[j] == 'v'
        current = y[j]
      elsif current == y[j] && ans[j] == '^'
        current = x[j]
      end
    end
    # p ['pos', pos, current]
    if first
      pos = current
      first = false
    elsif pos != current
      return false
    end
  end
  return true
end

if t==1
  # p kinitsu(n,m,'^^v^v'.split(//),x,y)
  puts '-1'
  exit
end

if n == 2
  puts '-1'
  exit
end

10.times do |j|
  n.times do |i|
    ans[i] = '^' if rand(2) == 1
  end
  if kinitsu(n,m,ans,x,y)
    # skip
  else
    puts ans.join('')
    exit
  end
end

puts '-1'
