A cleaner way to see this is to remember that convolution is symmetric in \(f\) and \(g\) (\(f*g=g*f\)), while cross-correlation is NOT symmetric in general (\(f\otimes g\ne g\otimes f\) unless the signals happen to be identical or symmetric). The rule that converts one operation into the other is: pick either one of the two signals, time-reverse (flip) it, and THEN cross-correlate - the flip exactly cancels the extra reversal that correlation is missing compared with convolution.
So there are two equally valid ways to build the same convolution result out of a correlation: flip \(g\) and correlate with plain \(f\) (\(f(t)\otimes g(\tau)\)), or flip \(f\) and correlate with plain \(g\) (\(f(\tau)\otimes g(t)\)) - both routes must give the identical output sequence, because ultimately both are just reorganized ways of writing the same sum \(\sum_k f(k)g(n-k)\). This is exactly what the direct numeric check with \(f=[-1,2,1]\), \(g=[0,-1,2]\) shows: both \(f(t)\otimes g(\tau)\) and \(f(\tau)\otimes g(t)\) reduce to \([0,1,-4,3,2]\), matching \(f*g\) exactly.
Flipping BOTH signals before correlating over-corrects - it removes the one reversal convolution needs, then adds a second one, which only reverses the time axis of the final answer rather than reproducing it (this is why \(f(\tau)\otimes g(\tau)\) comes out as the mirror image of \(f*g\), not \(f*g\) itself). And flipping neither signal leaves the correlation completely un-adjusted, so it has no reason to match the convolution at all.
Therefore exactly one flip - on either signal - correctly converts correlation into convolution, confirming that options (B) and (C) are the correct identities, answer \(\boxed{2,3}\).