def print_board(board):
    for row in board:
        print("|" + "|".join(row) + "|")
    print(" 1 2 3 4 5 6 7")

def drop_piece(board, col, piece):
    for row in range(5, -1, -1):
        if board[row][col] == " ":
            board[row][col] = piece
            return True
    return False

def is_valid_move(board, col):
    return 0 <= col <= 6 and board[0][col] == " "

def check_winner(board, piece):
    # Check horizontal
    for row in range(6):
        for col in range(4):
            if all(board[row][col+i] == piece for i in range(4)):
                return True

    # Check vertical
    for row in range(3):
        for col in range(7):
            if all(board[row+i][col] == piece for i in range(4)):
                return True

    # Check diagonal (down-right)
    for row in range(3):
        for col in range(4):
            if all(board[row+i][col+i] == piece for i in range(4)):
                return True

    # Check diagonal (up-right)
    for row in range(3, 6):
        for col in range(4):
            if all(board[row-i][col+i] == piece for i in range(4)):
                return True

    return False

def is_board_full(board):
    return all(board[0][col] != " " for col in range(7))

def main():
    board = [[" " for _ in range(7)] for _ in range(6)]
    players = ["R", "Y"]
    turn = 0

    while True:
        print_board(board)
        piece = players[turn]
        try:
            col = int(input(f"Player {piece}, choose column (1-7): ")) - 1
        except ValueError:
            print("Invalid input. Please enter a number between 1 and 7.")
            continue

        if not is_valid_move(board, col):
            print("Invalid move. Column is full or out of range. Try again.")
            continue

        drop_piece(board, col, piece)

        if check_winner(board, piece):
            print_board(board)
            print(f"Player {piece} wins!")
            break

        if is_board_full(board):
            print_board(board)
            print("It's a draw!")
            break

        turn = 1 - turn

if __name__ == "__main__":
    main()
