code: def joint(letters, marks):
      
      # The length ot letters and marks must be equal
      if len(letters) != len(marks):
          return ""
      stack_letter = stack.Stack(letters)
      stack_letter.items.reverse()
      stack_mark = stack.Stack(marks)
      stack_mark.items.reverse()
  
      word_stack = stack.Stack()
      last_letter = stack_letter.pop()
      last_mark = stack_mark.pop()
      vowels = HARAKAT
      while last_letter != None and last_mark != None:
          if last_letter == SHADDA:
              top = word_stack.pop()
              if top not in vowels:
                  word_stack.push(top)
              word_stack.push(last_letter)
              if last_mark != NOT_DEF_HARAKA:
                  word_stack.push(last_mark)
          else:
              word_stack.push(last_letter)
              if last_mark != NOT_DEF_HARAKA:
                  word_stack.push(last_mark)
  
          last_letter = stack_letter.pop()
          last_mark = stack_mark.pop()
  
      if not (stack_letter.is_empty() and stack_mark.is_empty()):
          return False
      else:
          return ''.join(word_stack.items)
docs: joint the letters with the marks
      the length ot letters and marks must be equal
      return word
      @param letters: the word letters
      @type letters: unicode
      @param marks: the word marks
      @type marks: unicode
      @return: word
      @rtype: unicode