刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦刻苦