Arduino UNO sketch & push button

I found that the button state for pin 3 keep its original state when push. My intention here is after pin 2 button is push, it keeps waiting until the pin 3 button is being pushed.

int Auto=2;
int Manu=3;

int val1;
int val2;
int stateA;
int stateB;

void setup()
{
  pinMode(Auto, INPUT);
  pinMode(Manu, INPUT);
  Serial.begin(9600);
}

void loop()
{
  val1=digitalRead(Auto);
  val2=digitalRead(Manu);

  if (val1!=stateA)
  {
    if (val1==HIGH)
    {

      Serial.println("Auto");
      delay(500);
    }
    else 
    {
      Serial.println("button auto released");
      if(val2==stateB)
      {
        delay(500);
        for(int i=0; i<10; i++){

          Serial.println(i);
          Serial.println("man:");
          Serial.println( val2);
          delay(500);
          while(val2==HIGH)

          {

            Serial.println("MAN");
            delay(500);

          }
        }
        Serial.println("button man released");
      }
    }
  }

  stateA=val1;
  stateB=val2;
}

I found that the button state for pin 3 keep its original state when push.

No it doesn't.

My intention here is after pin 2 button is push, it keeps waiting until the pin 3 button is being pushed.

So code it like that, that code does nothing like it.

Detect when pin 2 button is pressed, when it is set a flag ( variable )
Then when you see button 3 pressed and the flag is set - do what you want.

Some code to get you started

int state = 0;
const byte autoButtonPin = 2;
const byte manuButtonPin = 3;

void setup()
{
  pinMode(autoButtonPin, INPUT_PULLUP);
  pinMode(manuButtonPin, INPUT_PULLUP);
  Serial.begin(115200);
}

void loop() 
{  
  switch (state)
  {
  case 0:
    if (digitalRead(autoButtonPin) == LOW)
    {
      Serial.println("Auto button pressed.  Waiting for manual button to be pressed");
      state = 1; 
    }
    break;

  case 1:
    if (digitalRead(manuButtonPin) == LOW)
    {
      Serial.println("Manual button has been pressed");
      state = 0; 
    }
    break;
  }
}