нужно избавится от промежуточного массива tmp