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 row
    return -1  # column full

def check_win(board, piece):
    # 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
    # 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
    # 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
    # diagonal (down-left)
    for row in range(3):
        for col in range(3, 7):
            if all(board[row+i][col-i] == piece for i in range(4)):
                return True
    return False

def is_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 % 2]
        while True:
            try:
                col = int(input(f"Player {piece}, choose a column (1-7): ")) - 1
                if col < 0 or col > 6:
                    print("Column must be between 1 and 7.")
                    continue
                if board[0][col] != '.':
                    print("Column is full. Choose another.")
                    continue
                break
            except ValueError:
                print("Invalid input. Enter a number.")
        drop_piece(board, col, piece)
        if check_win(board, piece):
            print_board(board)
            print(f"Player {piece} wins!")
            return
        if is_full(board):
            print_board(board)
            print("It's a draw!")
            return
        turn += 1

if __name__ == "__main__":
    main()
