package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func q(n int) string {
return strings.Repeat("?", n)
}
func main() {
in := bufio.NewReader(os.Stdin)
var n int
fmt.Fscan(in, &n)
var s string
for i := 0; i < n; i++ {
fmt.Fscan(in, &s)
}
out := bufio.NewWriter(os.Stdout)
for d := 0; d <= 8; d++ {
fmt.Fprintln(out, q(5)+strconv.Itoa(d)+"5<>"+q(5)+strconv.Itoa(d+1))
}
fmt.Fprintln(out, q(5)+"95>>"+q(5)+"50")
for d := 0; d <= 8; d++ {
fmt.Fprintln(out, q(4)+strconv.Itoa(d)+"50<>"+q(4)+strconv.Itoa(d+1)+"0")
}
fmt.Fprintln(out, q(4)+"950>>"+q(4)+"500")
for d := 0; d <= 8; d++ {
fmt.Fprintln(out, q(3)+strconv.Itoa(d)+"500<>"+q(3)+strconv.Itoa(d+1)+"00")
}
fmt.Fprintln(out, q(3)+"9500>>"+q(3)+"5000")
for d := 0; d <= 8; d++ {
fmt.Fprintln(out, q(2)+strconv.Itoa(d)+"5000<>"+q(2)+strconv.Itoa(d+1)+"000")
}
fmt.Fprintln(out, "00000?<>?")
fmt.Fprintln(out, "0000??<>??")
fmt.Fprintln(out, "000???<>???")
fmt.Fprintln(out, "00????<>????")
fmt.Fprintln(out, q(4)+">>00"+q(4)+"5")
fmt.Fprintln(out, q(3)+">>000"+q(3)+"5")
fmt.Fprintln(out, q(2)+">>0000"+q(2)+"5")
fmt.Fprintln(out, q(1)+">>00000"+q(1)+"5")
out.Flush()
}