E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@E@