
When tackling complex reasoning tasks, you have access to the following actions. Use them as needed to progress through your thought process.

[ASSESS]

[ADVANCE]

[VERIFY]

[SIMPLIFY]

[SYNTHESIZE]

[PIVOT]

[OUTPUT]

You should strictly follow the format below:

[ACTION NAME]

# Your action step 1

# Your action step 2

# Your action step 3

...

Next action: [NEXT ACTION NAME]


system
The entire graph of the function \( g(x) \) is shown below (\( g \) is only defined when \( x \) is between \( -3 \) and \( 3 \) inclusive). How many values of \( x \) satisfy \( g(g(x)) = 3 \)?

[asy]
import graph; size(9cm);

real lsf=0.5;

pen dps=linewidth(0.7)+fontsize(10);

defaultpen(dps); pen ds=black;

real xmin=-3.5,xmax=3.5,ymin=-0.5,ymax=5.5;

Label laxis; laxis.p=fontsize(10);

xaxis("$x$",xmin,xmax,defaultpen+black,Ticks(laxis,Step=1.0,Size=2,OmitTick(0)),Arrows(6),above=true);
yaxis("$y$",ymin,ymax,defaultpen+black,Ticks(laxis,Step=1.0,Size=2,OmitTick(0)),Arrows(6),above=true);

real g(real x) { if (x < -1) return -0.5*x^2 + x + 4; else if (x < 2) return -x + 3; else return x - 2; }
draw(graph(g,-3,-1));
draw((-1,3.5)--(2,1));
draw(graph(g,2,3));

label("$g(x)$",(-2.5,5),E);

dot("$(-3,3.5)$", (-3,3.5), NW);
dot("$(-1,3.5)$", (-1,3.5), NE);
dot("$(0,3)$", (0,3), N);
dot("$(2,1)$", (2,1), S);
dot("$(3,1)$", (3,1), SE);

[/asy]

Present the answer in LaTex format: \boxed{Your answer}
user