[1/1,1/2,2/1,2/2,1/3,2/3,3/3,3/2,3/1]{} [ (S1) – (T2) – (S2) – (T1); ]{}

in [1,2,3]{} [ (S1) – (u) – (T1); (S2) – (u) – (T2); ]{}

at (u) [$u$]{};

A (not necessarily proper) $2$-colouring of the vertices of a graph is *good* if the vertices coloured $1$ form an independent set and the vertices coloured $2$ induce a forest. The set of vertices coloured $1$ in a good $2$-colouring is said to be a *$1$-set* and is, by definition, an independent feedback vertex of $G$. A good $2$-colouring of $G$ is [*optimal*]{} if its $1$-set is of minimum possible size among all good $2$-colourings. Our algorithm colours vertices one by one with colour $1$ or $2$ to obtain a number of good $2$-colourings. We will establish that our approach ensures that at least one of our good $2$-colourings is optimal. Therefore, as our algorithm finds different good $2$-colourings, it only needs to remember the smallest $1$-set seen so far. We note that $G$ certainly has good $2$-colourings as, for example, we can let either $S_1\cup S_2$ or $T_1\cup T_2$ be the set of vertices coloured $1$.

We say that an edge is a [*$1$-edge*]{} if both its end-points have colour $1$ and 