← Home
```go
package main

import (
	"fmt"
)

func main() {
	var x1, y1, x2, y2, x3, y3 int
	fmt.Scan(&x1, &y1, &x2, &y2, &x3, &y3)

	if isRight(x1, y1, x2, y2, x3, y3) {
		fmt.Println("RIGHT")
		return
	}

	vx := []int{x1, x2, x3}
	vy := []int{y1, y2, y3}
	dx := []int{-1, 1, 0, 0}
	dy := []int{0, 0, -1, 1}

	for i := 0; i < 3; i++ {
		origX, origY := vx[i], vy[i]
		for k := 0; k < 4; k++ {
			vx[i] = origX + dx[k]
			vy[i] = origY + dy[k]

			// Check if the new triangle is non-degenerate using cross product
			cp := (vx[1]-vx[0])*(vy[2]-vy[0]) - (vx[2]-vx[0])*(vy[1]-vy[0])
			if cp != 0 {
				if isRight(vx[0], vy[0], vx[1], vy[1], vx[2], vy[2]) {
					fmt.Println("ALMOST")
					return
				}
			}
		}
		vx[i] = origX
		vy[i] = origY
	}

	fmt.Println("NEITHER")
}

func distSq(x1, y1, x2, y2 int) int {
	return (x1-x2)*(x1-x2) + (y1-y2)*(y1-y2)
}

func isRight(x1, y1, x2, y2, x3, y3 int) bool {
	a := distSq(x1, y1, x2, y2)
	b := distSq(x2, y2, x3, y3)
	c := distSq(x3, y3, x1, y1)

	if a == 0 || b == 0 || c == 0 {
		return false
	}

	return a+b == c || a+c == b || b+c == a
}
```