
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 graph of the function $g(x)$ is shown below. How many values of $x$ satisfy $g(g(x)) = 2$? [asy]
import graph; size(7.4cm); real lsf=0.5; pen dps=linewidth(0.7)+fontsize(10); defaultpen(dps); pen ds=black; real xmin=-4.4,xmax=5.66,ymin=-1.05,ymax=6.16;

for(int i = -4; i <= 5; ++i) {
	draw((i,-1)--(i,6), dashed+mediumgrey);
}

for(int i = 1; i <= 6; ++i) {
	draw((-4,i)--(5,i), dashed+mediumgrey);
}

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

xaxis("$x$",-4.36,5.56,defaultpen+black,Ticks(laxis,Step=1.0,Size=2,OmitTick(0)),Arrows(6),above=true); yaxis("$y$",-0.92,6.12,defaultpen+black,Ticks(laxis,Step=1.0,Size=2,OmitTick(0)),Arrows(6),above=true); draw((xmin,(-(0)-(-2)*xmin)/-2)--(-1,(-(0)-(-2)*-1)/-2),linewidth(1.2)); draw((-1,1)--(3,3),linewidth(1.2)); draw((3,(-(-16)-(2)*3)/2)--(xmax,(-(-16)-(2)*xmax)/2),linewidth(1.2)); 

label("$g(x)$",(-3.52,4.6),SE*lsf);

dot((-4.32,4.32),ds); dot((5.56,2.44),ds);
clip((xmin,ymin)--(xmin,ymax)--(xmax,ymax)--(xmax,ymin)--cycle);

[/asy]

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