IDENTIFICATION DIVISION.
       PROGRAM-ID. XMATCHNG.
       ENVIRONMENT DIVISION.
       INPUT-OUTPUT SECTION.
       FILE-CONTROL.
           SELECT FILE-A ASSIGN TO 'FILEA'
           ORGANIZATION IS SEQUENTIAL
           ACCESS MODE IS SEQUENTIAL
           FILE STATUS IS FSA.
           
           SELECT FILE-B ASSIGN TO 'FILEB'
           ORGANIZATION IS SEQUENTIAL
           ACCESS MODE IS SEQUENTIAL
           FILE STATUS IS FSB.
           
           SELECT OUTPUT-FILE ASSIGN TO 'OUTFILE'
           ORGANIZATION IS SEQUENTIAL
           ACCESS MODE IS SEQUENTIAL
           FILE STATUS IS FSO.
           
       DATA DIVISION.
       FILE SECTION.
       FD  FILE-A.
       01  REC-A.
           05 ACCOUNT-NO-A    PIC X(10).
           05 OTHER-DATA-A    PIC X(50).
           
       FD  FILE-B.
       01  REC-B.
           05 ACCOUNT-NO-B    PIC X(10).
           05 OTHER-DATA-B    PIC X(50).
           
       FD  OUTPUT-FILE.
       01  OUTPUT-REC.
           05 ACCOUNT-NO-OUT  PIC X(10).
           05 DATA-A          PIC X(50).
           05 DATA-B          PIC X(50).
           
       WORKING-STORAGE SECTION.
       01  FSA               PIC X(2).
       01  FSB               PIC X(2).
       01  FSO               PIC X(2).
       01  EOF-A             PIC X VALUE 'N'.
       01  EOF-B             PIC X VALUE 'N'.
       
       PROCEDURE DIVISION.
       MAIN-PROCESS.
           PERFORM INITIALIZATION
           PERFORM PROCESS-FILES UNTIL EOF-A = 'Y' AND EOF-B = 'Y'
           PERFORM TERMINATION
           STOP RUN.
           
       INITIALIZATION.
           OPEN INPUT FILE-A
           OPEN INPUT FILE-B
           OPEN OUTPUT OUTPUT-FILE
           PERFORM READ-FILE-A
           PERFORM READ-FILE-B.
           
       PROCESS-FILES.
           IF EOF-A = 'Y' OR EOF-B = 'Y'
               EXIT PARAGRAPH
           END-IF
           
           IF ACCOUNT-NO-A = ACCOUNT-NO-B
               MOVE ACCOUNT-NO-A TO ACCOUNT-NO-OUT
               MOVE OTHER-DATA-A TO DATA-A
               MOVE OTHER-DATA-B TO DATA-B
               WRITE OUTPUT-REC
               PERFORM READ-FILE-A
               PERFORM READ-FILE-B
           ELSE
               IF ACCOUNT-NO-A < ACCOUNT-NO-B
                   PERFORM READ-FILE-A
               ELSE
                   PERFORM READ-FILE-B
               END-IF
           END-IF.
           
       READ-FILE-A.
           READ FILE-A
               AT END MOVE 'Y' TO EOF-A
           END-READ.
           
       READ-FILE-B.
           READ FILE-B
               AT END MOVE 'Y' TO EOF-B
           END-READ.
           
       TERMINATION.
           CLOSE FILE-A
           CLOSE FILE-B
           CLOSE OUTPUT-FILE.