```python
def mass_expression(text: str, unit: str) -> int:
    if not isinstance(text, str) or not isinstance(unit, str) or len(text) == 0:
        raise ValueError("Invalid input")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the tally")
    if not set(text.split()).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).issubset({'1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'g', 'kg', 't', '+', '-'}):
        raise ValueError("Invalid characters in the terms or operators")
    if not set(text).iss