The SAS DATA step uses line-hold specifier @ to hold the current record. For 'A' records, it reads the next line/value y. For the 'B' record, it doesn't execute the inner input for y, causing y to remain missing (.) for that observation. The output contains observations for A (1), A (2), and B (.).