CREATE PROCEDURE sp_Task49 AS BEGIN
WITH SmithManagers AS (
SELECT employee_id, manager_id, last_name, 1 AS lvl FROM employee WHERE last_name = 'SMITH'
UNION ALL
SELECT e.employee_id, e.manager_id, e.last_name, sm.lvl + 1 FROM employee e JOIN SmithManagers sm ON e.employee_id = sm.manager_id
), AdamsManagers AS (
SELECT employee_id, manager_id, last_name, 1 AS lvl FROM employee WHERE last_name = 'ADAMS'
UNION ALL
SELECT e.employee_id, e.manager_id, e.last_name, am.lvl + 1 FROM employee e JOIN AdamsManagers am ON e.employee_id = am.manager_id
)
SELECT TOP 1 sm.last_name AS common_manager
FROM SmithManagers sm
JOIN AdamsManagers am ON sm.employee_id = am.employee_id
ORDER BY sm.lvl ASC;
END;