A is a foul, B depends on how far behind the line of scrimmage the ball is at the time of the block. The blocking zone is only 3 yards deep and disintegrates when the ball leaves. The tackle box goes all the way back to Team A's end line. So it's possible for the ball to be within the tackle box but outside the blocking zone. So if the ball is or has been more than 3 yards behind the line, B is a foul. If the ball stayed within the 3-yard-deep blocking zone, B is legal.