<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def create_market_order(self, symbol, side, size=None, funds=None, client_oid=None, remark=None, stp=None):
 """Create a market order One of size or funds must be set https://docs.kucoin.com/#place-a-new-order :param symbol: Name of symbol e.g. KCS-BTC :type symbol: string :param side: buy or sell :type side: string :param size: (optional) Desired amount in base currency :type size: string :param funds: (optional) Desired amount of quote currency to use :type funds: string :param client_oid: (optional) Unique order id (default flat_uuid()) :type client_oid: string :param remark: (optional) remark for the order, max 100 utf8 characters :type remark: string :param stp: (optional) self trade protection CN, CO, CB or DC (default is None) :type stp: string .. code:: python order = client.create_market_order('NEO', Client.SIDE_BUY, size=20) :returns: ApiResponse .. code:: python { "orderOid": "596186ad07015679730ffa02" } :raises: KucoinResponseException, KucoinAPIException, MarketOrderException """


        if not size and not funds:
            raise MarketOrderException('Need size or fund parameter')

        if size and funds:
            raise MarketOrderException('Need size or fund parameter not both')

        data = {
            'side': side,
            'symbol': symbol,
            'type': self.ORDER_MARKET
        }

        if size:
            data['size'] = size
        if funds:
            data['funds'] = funds
        if client_oid:
            data['clientOid'] = client_oid
        else:
            data['clientOid'] = flat_uuid()
        if remark:
            data['remark'] = remark
        if stp:
            data['stp'] = stp

        return self._post('orders', True, data=data)