public class Pixel {

    private final int 
        incI[] = {0,-1,-1,-1,0,1,1,1},
        incJ[] = {-1,-1,0,1,1,1,0,-1};

    int i,j;

    Pixel(int ai, int aj) {
        i = ai;
        j = aj;
    }

    Pixel nbr(int d) {
        return new Pixel(i+incI[d],j+incJ[d]);
    }

    public String toString() {
        return "["+i+", "+j+"]";
    }

    public boolean equals(Object o) {
        Pixel p = (Pixel) o;
        return (i==p.i && j==p.j);
    }

    boolean used = false;
    void mark() {
        used =true;
    }

    boolean isMarked() {
        return used;
    }
}



