Preheat oven to 350 degrees F (175 degrees C). Grease a 9 x 13 baking dish. Bring a large pot of lightly salted water to a boil. Add pasta and cook for 8 to 10 minutes or until al dente; drain. In medium saucepan, melt butter and stir in flour to make a roux. Cook 1 to 2 minutes, stirring constantly, then whisk in warm milk a little at a time to make a white sauce. Bring to a boil, then reduce heat and simmer. Mix in salt, pepper, and cayenne, and stir frequently until sauce thickens. Remove pan from heat and stir in cheddar, mozzarella, jack and ham. Combine pasta with sauce and stir well. Pour into baking dish. Use paprika to make a decorative pattern on top. Bake 45 to 60 minutes, or until top is the desired crispiness. Let rest 20 minutes before serving.